Acuariofilia Madrid

Versión completa: Aula Arduino para principiantes.
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Es lo que me ha extañado, que en la documentación dice que la resistencia se pone en pull-up cuando tengas más elementos conectados al I2C...
(26-09-2015, 09:23 PM)ArturoS escribió: [ -> ]El pull-up es entre Vcc 5v+ y el pin digital (en este caso SDA)

Pero creo que en las placas mega ya lo lleva incorporado, y el uso de pull-up es para el bus en general, y no por poner uno o n módulos en el bus

Opino lo mismo que Arturo respecto a los pull-up, y dado que los bytes que se solicitan a I2C (high y low), vienen en el mismo orden, en el sensor de Dorman Labs, en el sensor de Tindie y en el de CyberPlant, los tres sensores I2C deberían ser compatibles con nuestro software.
(26-09-2015, 09:15 PM)Agamenon escribió: [ -> ]Por cierto estoy pensando en pillarme yo también un sensor de ph.

Cuál es el que estáis montando de tindie? el de cyberplant o el mini?

https://www.tindie.com/products/CyberPla...rod_search

https://www.tindie.com/products/SparkysW...interface/

Preferiría el de cyberplant por no tener que soldar los cables, tengo conectores de sobra para utilizarlo directamente. Pero dice que para usarlo en un puerto I2C con más dispositivos hay que utilizar las resistencias pull-up. Dónde tendría que colocar dichas resistencias?? en ninguno de mis I2C he tenido que hacerlo...

Yo compré en Tindie el de Cyberplant, y te puedo decir que funciona con el software CAO sin problemas, tuve la misma duda respecto a las resistencias de pull-up que trae, y funciona con y sin estas resistencias. Lo probé por curiosidad, ya que también había leído que el Arduino Mega ya traía estas resistencias y solo se necesitan unas en todo el bus.
Oki pues pillo el de cyberplant! gracias!
Hola gente alguien sabe como hacer una PCB ?
Para el que no sepa que es . es como una placa para no tener cables para el arduino
http://www.acuarios-marinos.com/attachme...1432321186
Buenas noches Antonio:

Me he estado leyendo tu libro sobre el controlador y después de realizar toda la instalación del arduino, su correspondiente instalación(incluidas librerías)... me he puesto a realizar una primera prueba.

Antes de nada, he de decir que sólo tengo puesto el arduino y la pantalla.

Al compilar me da el siguiente error...

Arduino:1.6.5 Hourly Build 2015/09/22 05:14 (Windows 8.1), Placa:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

CAO_1.2.1.cpp.o: In function `CaoMonitoringProc()':
G:\arduino/CAO_1.2.1.ino:67: undefined reference to `RTC_DS1307::now()'
G:\arduino/CAO_1.2.1.ino:72: undefined reference to `Cao1_Sensor::Read()'
G:\arduino/CAO_1.2.1.ino:73: undefined reference to `Cao1_Sensor::Read()'
G:\arduino/CAO_1.2.1.ino:74: undefined reference to `Cao1_Sensor::Read()'
G:\arduino/CAO_1.2.1.ino:76: undefined reference to `DateTime::unixtime() const'
G:\arduino/CAO_1.2.1.ino:78: undefined reference to `DailySchDO'
G:\arduino/CAO_1.2.1.ino:78: undefined reference to `DailySchDO'
G:\arduino/CAO_1.2.1.ino:78: undefined reference to `Cao1_DailySchDO::UpdateTasks(long)'
G:\arduino/CAO_1.2.1.ino:81: undefined reference to `DateTime::UnixTime2StrTime(unsigned long)'
G:\arduino/CAO_1.2.1.ino:81: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:81: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:81: undefined reference to `Cao1_Lcd20x4::SetLine_SerNL(char*, bool, int)'
G:\arduino/CAO_1.2.1.ino:83: undefined reference to `Cao1_Sensor::StrValSt(bool)'
G:\arduino/CAO_1.2.1.ino:83: undefined reference to `Cao1_Sensor::StrValSt(bool)'
G:\arduino/CAO_1.2.1.ino:83: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:83: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:83: undefined reference to `Cao1_SerialFmt::Fmt(__FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:83: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:83: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:83: undefined reference to `Cao1_Lcd20x4::SetLine_SerNL(char*, bool, int)'
G:\arduino/CAO_1.2.1.ino:84: undefined reference to `Cao1_Sensor::StrValSt(bool)'
G:\arduino/CAO_1.2.1.ino:84: undefined reference to `Cao1_SerialFmt::Fmt(__FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:84: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:84: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:84: undefined reference to `Cao1_Lcd20x4::SetLine_SerNL(char*, bool, int)'
G:\arduino/CAO_1.2.1.ino:88: undefined reference to `Dimmer'
G:\arduino/CAO_1.2.1.ino:88: undefined reference to `Dimmer'
G:\arduino/CAO_1.2.1.ino:88: undefined reference to `Cao1_Dimmer4Lz::GetStrDimmer(bool)'
G:\arduino/CAO_1.2.1.ino:88: undefined reference to `Cao1_Sensor::StrValSt(bool)'
G:\arduino/CAO_1.2.1.ino:88: undefined reference to `Cao1_Sensor::StrValSt(bool)'
G:\arduino/CAO_1.2.1.ino:88: undefined reference to `Cao1_Sensor::StrValSt(bool)'
G:\arduino/CAO_1.2.1.ino:88: undefined reference to `Cao1_SerialFmt::Fmt(__FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:88: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:88: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:88: undefined reference to `Cao1_Lcd20x4::Scrollh20(char*, int)'
G:\arduino/CAO_1.2.1.ino:92: undefined reference to `Dimmer'
G:\arduino/CAO_1.2.1.ino:92: undefined reference to `Dimmer'
G:\arduino/CAO_1.2.1.ino:92: undefined reference to `Cao1_Dimmer4Lz::GetZn()'
G:\arduino/CAO_1.2.1.ino:95: undefined reference to `Pulsad'
G:\arduino/CAO_1.2.1.ino:95: undefined reference to `Pulsad'
G:\arduino/CAO_1.2.1.ino:95: undefined reference to `Cao1_Botonera5Puls:Big GrincSegDsdCambBotonera()'
G:\arduino/CAO_1.2.1.ino:95: undefined reference to `Parm'
G:\arduino/CAO_1.2.1.ino:95: undefined reference to `Parm'
G:\arduino/CAO_1.2.1.ino:95: undefined reference to `Cao1_Parm::EEP_Read(int)'
G:\arduino/CAO_1.2.1.ino:103: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:103: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:103: undefined reference to `Cao1_Lcd20x4::Refresh()'
G:\arduino/CAO_1.2.1.ino:110: undefined reference to `DateTime::UnixTime2StrTime(unsigned long)'
G:\arduino/CAO_1.2.1.ino:112: undefined reference to `Cao1_Sensor::StrValSt(bool)'
G:\arduino/CAO_1.2.1.ino:112: undefined reference to `Cao1_Sensor::StrValSt(bool)'
G:\arduino/CAO_1.2.1.ino:112: undefined reference to `Cao1_Sensor::StrValSt(bool)'
G:\arduino/CAO_1.2.1.ino:112: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:112: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:112: undefined reference to `Cao1_SerialFmt::Fmt(__FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:113: undefined reference to `Dimmer'
G:\arduino/CAO_1.2.1.ino:113: undefined reference to `Dimmer'
G:\arduino/CAO_1.2.1.ino:113: undefined reference to `Cao1_Dimmer4Lz::GetStrDimmer(bool)'
G:\arduino/CAO_1.2.1.ino:123: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:123: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:123: undefined reference to `Cao1_SerialFmt::Fmt(int, __FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:128: undefined reference to `Cao1_Sensor::GetAlarmCondition()'
G:\arduino/CAO_1.2.1.ino:128: undefined reference to `Cao1_Sensor::GetAlarmCondition()'
G:\arduino/CAO_1.2.1.ino:131: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:131: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:131: undefined reference to `Cao1_Lcd20x4::Cls()'
G:\arduino/CAO_1.2.1.ino:132: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:132: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:132: undefined reference to `Cao1_SerialFmt::Fmt(__FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:132: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:132: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:132: undefined reference to `Cao1_Lcd20x4:TonguerintLn_Ser(char*, bool)'
G:\arduino/CAO_1.2.1.ino:133: undefined reference to `Cao1_Sensor::GetAlarmCondition()'
G:\arduino/CAO_1.2.1.ino:134: undefined reference to `Cao1_Sensor::GetAlarm(char*, int)'
G:\arduino/CAO_1.2.1.ino:134: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:134: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:134: undefined reference to `Cao1_Lcd20x4:TonguerintLn_Ser(char*, bool)'
G:\arduino/CAO_1.2.1.ino:136: undefined reference to `Cao1_Sensor::GetAlarmCondition()'
G:\arduino/CAO_1.2.1.ino:137: undefined reference to `Cao1_Sensor::GetAlarm(char*, int)'
G:\arduino/CAO_1.2.1.ino:137: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:137: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:137: undefined reference to `Cao1_Lcd20x4:TonguerintLn_Ser(char*, bool)'
G:\arduino/CAO_1.2.1.ino:139: undefined reference to `Cao1_Sensor::GetAlarmCondition()'
G:\arduino/CAO_1.2.1.ino:140: undefined reference to `Cao1_Sensor::GetAlarm(char*, int)'
G:\arduino/CAO_1.2.1.ino:140: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:140: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:140: undefined reference to `Cao1_Lcd20x4:TonguerintLn_Ser(char*, bool)'
G:\arduino/CAO_1.2.1.ino:145: undefined reference to `Cao1_Sensor::GetSoundAlarmCondition()'
G:\arduino/CAO_1.2.1.ino:145: undefined reference to `Cao1_Sensor::GetSoundAlarmCondition()'
G:\arduino/CAO_1.2.1.ino:96: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:96: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:96: undefined reference to `Cao1_Lcd20x4::Cls()'
G:\arduino/CAO_1.2.1.ino:146: undefined reference to `Parm'
G:\arduino/CAO_1.2.1.ino:146: undefined reference to `Parm'
G:\arduino/CAO_1.2.1.ino:146: undefined reference to `Cao1_Parm::EEP_Read(int)'
G:\arduino/CAO_1.2.1.ino:147: undefined reference to `Buzz'
G:\arduino/CAO_1.2.1.ino:147: undefined reference to `Buzz'
G:\arduino/CAO_1.2.1.ino:147: undefined reference to `Cao1_Buzz::Tick()'
G:\arduino/CAO_1.2.1.ino:150: undefined reference to `Buzz'
G:\arduino/CAO_1.2.1.ino:150: undefined reference to `Buzz'
G:\arduino/CAO_1.2.1.ino:150: undefined reference to `Cao1_Buzz::Alarm()'
CAO_1.2.1.cpp.o: In function `GetPhAcu()':
G:\arduino/CAO_1.2.1.ino:161: undefined reference to `Cao1_LinealSensor::ReadSensor()'
CAO_1.2.1.cpp.o: In function `GetTempAcu()':
G:\arduino/CAO_1.2.1.ino:170: undefined reference to `ds18x20'
G:\arduino/CAO_1.2.1.ino:170: undefined reference to `ds18x20'
G:\arduino/CAO_1.2.1.ino:170: undefined reference to `Cao1_DS18x20::GetTempAddr(char*)'
CAO_1.2.1.cpp.o: In function `GetTempLeds()':
G:\arduino/CAO_1.2.1.ino:179: undefined reference to `ds18x20'
G:\arduino/CAO_1.2.1.ino:179: undefined reference to `ds18x20'
G:\arduino/CAO_1.2.1.ino:179: undefined reference to `Cao1_DS18x20::GetTempAddr(char*)'
CAO_1.2.1.cpp.o: In function `LeerBotonera()':
G:\arduino/CAO_1.2.1.ino:187: undefined reference to `Pulsad'
G:\arduino/CAO_1.2.1.ino:187: undefined reference to `Pulsad'
G:\arduino/CAO_1.2.1.ino:187: undefined reference to `Cao1_Botonera5Puls::ButtPressed()'
G:\arduino/CAO_1.2.1.ino:189: undefined reference to `Buzz'
G:\arduino/CAO_1.2.1.ino:189: undefined reference to `Buzz'
G:\arduino/CAO_1.2.1.ino:189: undefined reference to `Cao1_Buzz::Tick()'
G:\arduino/CAO_1.2.1.ino:190: undefined reference to `SafeMode()'
G:\arduino/CAO_1.2.1.ino:192: undefined reference to `MenuPrincipal(char const*)'
CAO_1.2.1.cpp.o: In function `setup':
G:\arduino/CAO_1.2.1.ino:209: undefined reference to `SafeMode()'
G:\arduino/CAO_1.2.1.ino:218: undefined reference to `Buzz'
G:\arduino/CAO_1.2.1.ino:218: undefined reference to `Buzz'
G:\arduino/CAO_1.2.1.ino:218: undefined reference to `Cao1_Buzz::Ini(int)'
G:\arduino/CAO_1.2.1.ino:218: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:219: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:219: undefined reference to `Cao1_Lcd20x4::Ini()'
G:\arduino/CAO_1.2.1.ino:220: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:220: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:220: undefined reference to `Cao1_SerialFmt::Fmt(__FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:220: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:220: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:220: undefined reference to `Cao1_Lcd20x4:TonguerintLn_Ser(char*, bool)'
G:\arduino/CAO_1.2.1.ino:221: undefined reference to `Cao1_SerialFmt::Fmt(__FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:221: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:221: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:221: undefined reference to `Cao1_Lcd20x4:TonguerintLn_Ser(char*, bool)'
G:\arduino/CAO_1.2.1.ino:222: undefined reference to `Cao1_SerialFmt::Fmt(__FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:222: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:222: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:222: undefined reference to `Cao1_Lcd20x4:TonguerintLn_Ser(char*, bool)'
G:\arduino/CAO_1.2.1.ino:223: undefined reference to `Cao1_SerialFmt::Fmt(__FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:223: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:223: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:223: undefined reference to `Cao1_Lcd20x4:TonguerintLn_Ser(char*, bool)'
G:\arduino/CAO_1.2.1.ino:225: undefined reference to `Pulsad'
G:\arduino/CAO_1.2.1.ino:225: undefined reference to `Pulsad'
G:\arduino/CAO_1.2.1.ino:225: undefined reference to `Cao1_Botonera5Puls::Ini(int)'
G:\arduino/CAO_1.2.1.ino:229: undefined reference to `Cao1_SerialFmt::Fmt(__FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:229: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:229: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:229: undefined reference to `Cao1_Lcd20x4:TonguerintLn_Ser(char*, bool)'
G:\arduino/CAO_1.2.1.ino:230: undefined reference to `Parm'
G:\arduino/CAO_1.2.1.ino:230: undefined reference to `Parm'
G:\arduino/CAO_1.2.1.ino:230: undefined reference to `Cao1_Parm::Ini(unsigned char, unsigned char, unsigned char, bool)'
G:\arduino/CAO_1.2.1.ino:230: undefined reference to `Buzz'
G:\arduino/CAO_1.2.1.ino:230: undefined reference to `Buzz'
G:\arduino/CAO_1.2.1.ino:234: undefined reference to `Cao1_Buzz::Ring()'
G:\arduino/CAO_1.2.1.ino:235: undefined reference to `Confirm(bool, char const*, char const*, char, int)'
G:\arduino/CAO_1.2.1.ino:235: undefined reference to `CR(bool)'
G:\arduino/CAO_1.2.1.ino:239: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:239: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:239: undefined reference to `Cao1_SerialFmt::Fmt(__FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:239: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:239: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:239: undefined reference to `Cao1_Lcd20x4:TonguerintLn_Ser(char*, bool)'
G:\arduino/CAO_1.2.1.ino:240: undefined reference to `Cao1_SerialFmt::Fmt(__FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:240: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:240: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:240: undefined reference to `Cao1_Lcd20x4:TonguerintLn_Ser(char*, bool)'
G:\arduino/CAO_1.2.1.ino:244: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:244: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:244: undefined reference to `Cao1_SerialFmt::Fmt(__FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:244: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:244: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:244: undefined reference to `Cao1_Lcd20x4:TonguerintLn_Ser(char*, bool)'
G:\arduino/CAO_1.2.1.ino:243: undefined reference to `CR(bool)'
G:\arduino/CAO_1.2.1.ino:252: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:252: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:252: undefined reference to `Cao1_SerialFmt::Fmt(__FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:252: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:252: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:252: undefined reference to `Cao1_Lcd20x4:TonguerintLn_Ser(char*, bool)'
G:\arduino/CAO_1.2.1.ino:253: undefined reference to `Dimmer'
G:\arduino/CAO_1.2.1.ino:253: undefined reference to `Dimmer'
G:\arduino/CAO_1.2.1.ino:253: undefined reference to `Cao1_Dimmer4Lz::Ini(bool, int, int, int, int, bool)'
G:\arduino/CAO_1.2.1.ino:253: undefined reference to `CR(bool)'
G:\arduino/CAO_1.2.1.ino:254: undefined reference to `RTC'
G:\arduino/CAO_1.2.1.ino:254: undefined reference to `RTC'
G:\arduino/CAO_1.2.1.ino:255: undefined reference to `RTC_DS1307::Ini()'
G:\arduino/CAO_1.2.1.ino:256: undefined reference to `ds18x20'
G:\arduino/CAO_1.2.1.ino:256: undefined reference to `ds18x20'
G:\arduino/CAO_1.2.1.ino:256: undefined reference to `Cao1_DS18x20::Ini(int, int, bool)'
G:\arduino/CAO_1.2.1.ino:257: undefined reference to `ds18x20'
G:\arduino/CAO_1.2.1.ino:257: undefined reference to `ds18x20'
G:\arduino/CAO_1.2.1.ino:257: undefined reference to `Cao1_DS18x20::GetPosSensor(char*)'
G:\arduino/CAO_1.2.1.ino:258: undefined reference to `ds18x20'
G:\arduino/CAO_1.2.1.ino:258: undefined reference to `ds18x20'
G:\arduino/CAO_1.2.1.ino:258: undefined reference to `Cao1_DS18x20::GetPosSensor(char*)'
G:\arduino/CAO_1.2.1.ino:268: undefined reference to `Cao1_SerialFmt::Fmt(__FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:268: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:268: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:268: undefined reference to `Cao1_Lcd20x4:TonguerintLn_Ser(char*, bool)'
G:\arduino/CAO_1.2.1.ino:269: undefined reference to `Cao1_Sensor::IniBroken(int, char*, int, int, bool, bool)'
G:\arduino/CAO_1.2.1.ino:272: undefined reference to `Cao1_SerialFmt::Fmt(__FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:272: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:272: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:272: undefined reference to `Cao1_Lcd20x4:TonguerintLn_Ser(char*, bool)'
G:\arduino/CAO_1.2.1.ino:273: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:273: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:273: undefined reference to `Cao1_Lcd20x4:TonguerintLn_Ser(char*, bool)'
G:\arduino/CAO_1.2.1.ino:276: undefined reference to `Cao1_Sensor::Ini(int, char*, int, int, bool, bool, int (*)(), void (*)(int, int), int, char*, bool)'
G:\arduino/CAO_1.2.1.ino:280: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:280: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:280: undefined reference to `Cao1_SerialFmt::Fmt(__FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:280: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:280: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:280: undefined reference to `Cao1_Lcd20x4:TonguerintLn_Ser(char*, bool)'
G:\arduino/CAO_1.2.1.ino:281: undefined reference to `Cao1_Sensor::IniBroken(int, char*, int, int, bool, bool)'
G:\arduino/CAO_1.2.1.ino:284: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:284: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:284: undefined reference to `Cao1_SerialFmt::Fmt(__FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:284: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:284: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:284: undefined reference to `Cao1_Lcd20x4:TonguerintLn_Ser(char*, bool)'
G:\arduino/CAO_1.2.1.ino:285: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:285: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:285: undefined reference to `Cao1_Lcd20x4:TonguerintLn_Ser(char*, bool)'
G:\arduino/CAO_1.2.1.ino:288: undefined reference to `Cao1_Sensor::Ini(int, char*, int, int, bool, bool, int (*)(), void (*)(int, int), int, char*, bool)'
G:\arduino/CAO_1.2.1.ino:291: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:291: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:291: undefined reference to `Cao1_SerialFmt::Fmt(__FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:291: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:291: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:291: undefined reference to `Cao1_Lcd20x4:TonguerintLn_Ser(char*, bool)'
G:\arduino/CAO_1.2.1.ino:291: undefined reference to `CR(bool)'
G:\arduino/CAO_1.2.1.ino:302: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:302: undefined reference to `SerFmt'
G:\arduino/CAO_1.2.1.ino:302: undefined reference to `Cao1_SerialFmt::Fmt(int, __FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:309: undefined reference to `Cao1_SerialFmt::Fmt(int, __FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:310: undefined reference to `Cao1_SerialFmt::Fmt(int, __FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:318: undefined reference to `Cao1_LinealSensor::Ini(__FlashStringHelper const*, __FlashStringHelper const*, __FlashStringHelper const*, char, int, int, char*, unsigned char, int, int, int, int, bool)'
G:\arduino/CAO_1.2.1.ino:328: undefined reference to `Cao1_Sensor::Ini(int, char*, int, int, bool, bool, int (*)(), void (*)(int, int), int, char*, bool)'
G:\arduino/CAO_1.2.1.ino:328: undefined reference to `CR(bool)'
G:\arduino/CAO_1.2.1.ino:334: undefined reference to `SetFrecPWM_Motors()'
G:\arduino/CAO_1.2.1.ino:335: undefined reference to `CR(bool)'
G:\arduino/CAO_1.2.1.ino:335: undefined reference to `CheckTaskConf(bool)'
G:\arduino/CAO_1.2.1.ino:336: undefined reference to `CR(bool)'
G:\arduino/CAO_1.2.1.ino:342: undefined reference to `Cao1_SerialFmt::Fmt(__FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:342: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:342: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:342: undefined reference to `Cao1_Lcd20x4:TonguerintLn_Ser(char*, bool)'
G:\arduino/CAO_1.2.1.ino:342: undefined reference to `freeMemory()'
G:\arduino/CAO_1.2.1.ino:342: undefined reference to `Cao1_SerialFmt::Fmt(__FlashStringHelper const*, ...)'
G:\arduino/CAO_1.2.1.ino:343: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:343: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:343: undefined reference to `Cao1_Lcd20x4:TonguerintLn_Ser(char*, bool)'
G:\arduino/CAO_1.2.1.ino:343: undefined reference to `CR(bool)'
G:\arduino/CAO_1.2.1.ino:343: undefined reference to `DelayPlus'
G:\arduino/CAO_1.2.1.ino:343: undefined reference to `DelayPlus'
G:\arduino/CAO_1.2.1.ino:343: undefined reference to `Cao1_DelayPlus::SetProcHighPri(void (*)())'
G:\arduino/CAO_1.2.1.ino:345: undefined reference to `DelayPlus'
G:\arduino/CAO_1.2.1.ino:345: undefined reference to `DelayPlus'
G:\arduino/CAO_1.2.1.ino:347: undefined reference to `Cao1_DelayPlus::SetProcLowPri(void (*)(), unsigned long)'
G:\arduino/CAO_1.2.1.ino:347: undefined reference to `DelayPlus'
G:\arduino/CAO_1.2.1.ino:347: undefined reference to `DelayPlus'
G:\arduino/CAO_1.2.1.ino:347: undefined reference to `Cao1_DelayPlus::Enable()'
G:\arduino/CAO_1.2.1.ino:348: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:348: undefined reference to `LCD'
G:\arduino/CAO_1.2.1.ino:348: undefined reference to `Cao1_Lcd20x4::Cls()'
CAO_1.2.1.cpp.o: In function `loop':
G:\arduino/CAO_1.2.1.ino:351: undefined reference to `DelayPlus'
G:\arduino/CAO_1.2.1.ino:351: undefined reference to `DelayPlus'
G:\arduino/CAO_1.2.1.ino:351: undefined reference to `Cao1_DelayPlus:Big Grinelay(int)'
G:\arduino/CAO_1.2.1.ino:351: undefined reference to `Dimmer'
G:\arduino/CAO_1.2.1.ino:351: undefined reference to `Dimmer'
G:\arduino/CAO_1.2.1.ino:351: undefined reference to `Cao1_Dimmer4Lz::UpdateDimeos()'
CAO_1.2.1.cpp.o: In function `__static_initialization_and_destruction_0':
G:\arduino/CAO_1.2.1.ino:50: undefined reference to `Cao1_Sensor::Cao1_Sensor()'
G:\arduino/CAO_1.2.1.ino:51: undefined reference to `Cao1_Sensor::Cao1_Sensor()'
G:\arduino/CAO_1.2.1.ino:52: undefined reference to `Cao1_Sensor::Cao1_Sensor()'
G:\arduino/CAO_1.2.1.ino:53: undefined reference to `Cao1_LinealSensor::Cao1_LinealSensor()'
collect2.exe: error: ld returned 1 exit status
Error de compilación

This report would have more information with
"Show verbose output during compilation"
activala desde Archivo > Preferencias

Mis conocimientos de programación del arduino son más bien nulos así que estas son mis cuestiones:

1.- ¿Me falta algo de configurar? entiendo que si no ha sido cargado el código en arduino, no debería dar error por no encontrar los diferentes sensores que no tengo puestos.

2.- ¿Sería posible instalar ciertos módulos y otros no de tu proyecto?, es decir, imaginemos que no quiero por ahora el dimeo de la luz... ¿podría quitar este modulo del proyecto sin interferir en la aplicación?

Como verás estoy dando mis primeros pasos en este proyecto Smile

Un saludo y gracias por todo...
(05-10-2015, 12:09 AM)Suce escribió: [ -> ]Buenas noches Antonio:

Me he estado leyendo tu libro sobre el controlador y después de realizar toda la instalación del arduino, su correspondiente instalación(incluidas librerías)... me he puesto a realizar una primera prueba.

Antes de nada, he de decir que sólo tengo puesto el arduino y la pantalla.

Al compilar me da el siguiente error...

Arduino:1.6.5 Hourly Build 2015/09/22 05:14 (Windows 8.1), Placa:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

CAO_1.2.1.cpp.o: In function `CaoMonitoringProc()':
G:\arduino/CAO_1.2.1.ino:67: undefined reference to `RTC_DS1307::now()'
G:\arduino/CAO_1.2.1.ino:72: undefined reference to `Cao1_Sensor::Read()'
[...]
G:\arduino/CAO_1.2.1.ino:53: undefined reference to `Cao1_LinealSensor::Cao1_LinealSensor()'
collect2.exe: error: ld returned 1 exit status
Error de compilación

This report would have more information with
"Show verbose output during compilation"
activala desde Archivo > Preferencias

Mis conocimientos de programación del arduino son más bien nulos así que estas son mis cuestiones:

1.- ¿Me falta algo de configurar? entiendo que si no ha sido cargado el código en arduino, no debería dar error por no encontrar los diferentes sensores que no tengo puestos.

2.- ¿Sería posible instalar ciertos módulos y otros no de tu proyecto?, es decir, imaginemos que no quiero por ahora el dimeo de la luz... ¿podría quitar este modulo del proyecto sin interferir en la aplicación?

Como verás estoy dando mis primeros pasos en este proyecto Smile

Un saludo y gracias por todo...

El error undefined reference to significa que no ha encontrado la referencia al, objeto, o a la variable, o a la función que intentas usar.

Sospecho no ha encontrado nada o casi nada. Las librerías probablemente no estén ubicadas donde corresponde porque hiciste algo mal o se te olvidó algo importante.

Concretamente debes repasar el capítulo de Instalación del software y compilación

En efecto, puedes suprimir módulos de funcionalidades que no uses pero para hacerlo conviene hacerlo con cuidado. Mientras no consigas una compilación sin errores no recomiendo tocar nada porque sería más complicado saber si lo que estás modificando causa nuevos problemas.

Si te interesa profundizar sobre estos temas, puedes encontrar información adicional en Entorno de desarrollo y en
Installing Additional Arduino Libraries

Pero puedes preguntarme todo lo que quieras. Yo creo que con las instrucciones que vienen para instalar CAO1 es suficiente, pero si hay algo que no está del todo claro, me interesa saberlo.

Te anexo un programita muy simple que solo sirve para probar un modulito de sonidos para el zumbador con la idea de que lo compiles y compruebes que te toma la librería sin problemas. Si logras hacer funcionar eso deberías ser capaz de compilar CAO1 . Sigue las instrucciones de Instalación del software y compilación que mencioné antes.
[attachment=3486]
Muchas gracias Antonio... al final el error era que la versión de CAO no se correspondía con la que tenías en tu blog. Baje la que está en el blog y después de seguir los pasos...compilado y subido al arduino. Muestra los datos en pantalla sin problemas(claro que sin ser correcto por falta de sensores conectados)

Mientras me llegan algunas piezas que he pedido iré haciendo pruebas con los sensores de temperatura... espero no tener que hacerte muchas preguntas Wink

Gracias por todo.
(05-10-2015, 05:15 PM)Suce escribió: [ -> ]Muchas gracias Antonio... al final el error era que la versión de CAO no se correspondía con la que tenías en tu blog. [...]
Gracias por todo.

-good.gif Ok.
Buenas noches Antonio:

Tengo un pequeño problema con las sondas de temperatura Smile

Para saber las direcciones de los sensores he utilizado el programa que está en la dirección http://arduino-info.wikispaces.com/Brick...individual y me da como resultado

Found '1-Wire' device with address:
0x28, 0xFF, 0x2C, 0x05, 0x61, 0x04, 0x00, 0x25

Found '1-Wire' device with address:
0x28, 0xFF, 0xF9, 0x07, 0x61, 0x04, 0x00, 0xAE
Done

luego he editado el archivo CAO1_CONFIG.H poniendo lo siguiente:

#define ADDR_DS18X20_TEMP_LEDS "28FF.2C05.6104.0025"
#define ADDR_DS18X20_TEMP_ACUA "28FF.F907.6104.00AE"

Al compilar y cargar de nuevo CAO al arduino me hace el chequeo y detecta que tengo dos sondas instaladas pero en pantalla me muestra TAc(?) y TLd(?)

En la consola puedo ver lo siguiente:

Ini().Sens Temp.
Buscar Sensor N=0
Buscar Sensor N=1
Buscar Sensor N=2
Tot.sens.DS18x20=2
Num.Sens.Temp.=2
NO Sens.Temp.Acuario
Ini Bad sensor TAc(PinIncr=30, PinDecr=23)
Sens=TAc Desconect
NO Sens.Temp.LEDs
Ini Bad sensor TLd(PinIncr=0, PinDecr=22)
Sens=TLd Desconect
2) ???SENS.TEMP???

¿Qué estoy haciendo mal? Por más que miro no veo el fallo.

Un saludo.
(07-10-2015, 02:14 AM)Suce escribió: [ -> ]Buenas noches Antonio:

Tengo un pequeño problema con las sondas de temperatura Smile

Para saber las direcciones de los sensores he utilizado el programa que está en la dirección http://arduino-info.wikispaces.com/Brick...individual y me da como resultado

Found '1-Wire' device with address:
0x28, 0xFF, 0x2C, 0x05, 0x61, 0x04, 0x00, 0x25

Found '1-Wire' device with address:
0x28, 0xFF, 0xF9, 0x07, 0x61, 0x04, 0x00, 0xAE
Done

luego he editado el archivo CAO1_CONFIG.H poniendo lo siguiente:

#define ADDR_DS18X20_TEMP_LEDS "28FF.2C05.6104.0025"
#define ADDR_DS18X20_TEMP_ACUA "28FF.F907.6104.00AE"

Al compilar y cargar de nuevo CAO al arduino me hace el chequeo y detecta que tengo dos sondas instaladas pero en pantalla me muestra TAc(?) y TLd(?)

En la consola puedo ver lo siguiente:

Ini().Sens Temp.
Buscar Sensor N=0
Buscar Sensor N=1
Buscar Sensor N=2
Tot.sens.DS18x20=2
Num.Sens.Temp.=2
NO Sens.Temp.Acuario
Ini Bad sensor TAc(PinIncr=30, PinDecr=23)
Sens=TAc Desconect
NO Sens.Temp.LEDs
Ini Bad sensor TLd(PinIncr=0, PinDecr=22)
Sens=TLd Desconect
2) ???SENS.TEMP???

¿Qué estoy haciendo mal? Por más que miro no veo el fallo.

Un saludo.

Parece que si los ha detectado. Num.Sens.Temp.=2
Entra en el menú y configura cada sensor, podrían estar desactivados.
Antonio, he estado leyendo sobre tu programa y me surgen un par de dudas. Tengo nociones básicas de POO de un curso básico de Java que di. Y pretendía modificar tu programa para adaptarlo a mis necesidades. La primera duda es que, si no uso algunos de tus sensores, por ejemplo el de pH, no tendría que modificar nada en el código porque al iniciarse arduino ¿no lo detectaria?. Y el usar el sensor de temperatura para los ventiladores de los leds se podría adaptar fácilmente ¿? para controlar un termocalentador.
Por otro lado para el dimeo de luces en vez de 4 canales ¿se podrían usar solo tres?.
Gracias de todas formas, un saludo.

Tenia pensado usar tiras de les de 12v por lo que deberia anular las resistencias que tu usas para tal fin ¿no?
Antonio una preguntita rápida acerca de la calibración de ph. Aún no me ha llegado el sensor, pero sí la sonda y quiero ir teniendo ya todo preparado.

Tengo sobres de calibración de ph 4 y 6,86... pero te he escuchado mil veces decir que en CAO la calibración es entre 4 y 7. Es así o se puede cambiar a 6,86?? de todas formas si fuese a 7 tampoco habría problema, con hacer la medición sobre agua destilada sería ph7 seguro Big Grin
(15-10-2015, 04:38 PM)Agamenon escribió: [ -> ]Antonio una preguntita rápida acerca de la calibración de ph. Aún no me ha llegado el sensor, pero sí la sonda y quiero ir teniendo ya todo preparado.

Tengo sobres de calibración de ph 4 y 6,86... pero te he escuchado mil veces decir que en CAO la calibración es entre 4 y 7. Es así o se puede cambiar a 6,86?? de todas formas si fuese a 7 tampoco habría problema, con hacer la medición sobre agua destilada sería ph7 seguro Big Grin

En la inicializazción de LinealSensor se pasan una serie de valores
Código:
boolean Cao1_LinealSensor::Ini(const __FlashStringHelper *IdSensor,
        const __FlashStringHelper *StrPt1, const __FlashStringHelper *StrPt2,  
        char Factor,
        int LS_Index_EEPR, int NumLecturas, char *Protocol, byte ADDR,
        int Pt0, int Pt1_Calibr, int Pt2_Calibr, int PtF, boolean Verbose){


//
// IdSensor:
//      Identificador
//      La lonjitud no puede ser superior a 10 caracteres y debe
//      venir en PROGMEM (como puntero a __FlashStringHelper).
//      Ejemplos: F("pHShield"), F("Redox"), F("Conductiv"), F("Temper."),
//      F("Luz"), F("Dureza")
// StrPt1, StrPt2:
//      deben venir en PROGMEM (como punteros a __FlashStringHelper).
//      Son literales descriptivos para nombrar el primer y segundo punto
//      de calibración del sensor. Tiene relación con las soluciones
//      usadas para ello. P.Ejem: StrPt1=F("pH4"); StrPt2=F("pH7");
// Factor: Dado que siempre trabajaremos internamente con datos enteros,
//      Factor ha de ser un valor en coma flotante para obtener la
//      magnitud adecuada a la representacion visual. Por ejemplo para
//      grados de pH resulta oportuno trabajar internamente en céntésimas
//      de grados, por ello usaremos un valor 'c' para Factor. Se admiten
//      cuatro posibilidades para este parámetro:
//      'm' milésimas, 'c' centésimas, 'd' décimas, 'e' entero.
// LS_Index_EEPR: La EEPROM admite almacenar una serie de valores relativos a
//      datos de calibración. Deberá inicializar con [0, 1, 2, etc.] para
//      la [primera, segunda, tercera etc.] ocurrencia de sensor inicializado
//      respectivamente.
// NumLecturas:
//      int _Read1RawSensor() se ejecutara un número de veces para poder
//      promediar los valores obtenidos y aumentar considerablemente la
//      precisión de la lectura final. Internamente los valores de tipo
//      se irán acumulando sobre un acumulador de tipo long. Con un múmero
//      de lecturas de 600 suele bastar. Puede poner un valor alto sin
//      peligro de overflow en el acumulador ya que los datos de tipo
//      long admiten valores unas 65000 veces más grandes que el dato int
//      (-32,768 .. 32,767) long (-2,147,483,648 .. 2,147,483,647), pero
//      tenga en cuenta que un numero elevado hará más lenta la funcion de
//      lectura y podría no mejorar gran cosa la precisión. Por ejemplo
//      una lectura con analogRead() consume unos 100 microsegundos.
//  Protocol:
//      Solo se admiten 3 de momento (15-sept-2015) que son:
//          "ANR" analogRead(),  "IDL" I2C DormandLabs, Tambien sirve para I2c de Tindie
//  ADDR:
//      Dependiendo del protocolo será el valor del Pin, o
//      Direccion I2C de 7 bits.
//  Verbose:
//      True --> proporciona maás informacion de diagnósitico.
//  Pt0:
//      Valor más bajo admisible de la magnitud con ese sensor.
//      Un valor más bajo se considerará erroneo.
//  Pt1_Calibr:
//      Valor bajo para calibración.
//  Pt2_Calibr:
//      Valor alto para calibración.
//  PtF:
//      Valor más alto admisible de la magnitud con ese sensor.
//      Un valor más alto se considerará erroneo.
Tengo un programa para hacer un medidor de pH y tengo CAO1 que tambien mide pH y en ambos casos ha de inicializarse dentro de la funcion setup() del programa principal.

Código:
if (PROTOCOL==ANR){
        PhMtr.Ini(F("PhShield"), F("pH4"), F("pH7") , 'c', 0, 1000, "ANR", PinPhShield, 300, 400, 700, 1000, ArranqueLento);
    }
    else if (PROTOCOL==IDL){
        PhMtr.Ini(F("PhI2C"),    F("pH4"), F("pH7") , 'c', 1, 1000, "IDL", PHADDRESS,   300, 400, 700, 1000, ArranqueLento);
    }

400 para pH= 4.00
700 para pH= 7.00

Puedes cambiar 700 por 686 para tampón a pH=6.86 pero el segundo decimal tampoco ofrecería demasiadas garantías de precisión. Creo que la máxima precisión tehórica es de +/- 0.02 .

Lo de la pérdida de precisión ya lo irás viendo tu por la forma en que suelen oscilar los valores porque cuando las sondas tardan mucho en ofrecer un valor estable para medir el ph del agua es porque se están agotando. Las medidas de los pH de los tampones suelen ser más rápidas y estables que en el agua del acuario. De todas formas siempre hay que esperar a que se estabilice el valor moviendo ligeramente la sonda de vez en cuando.
Gracias Antonio, me ha quedado cristalino Big Grin