Es un termómetro con el DS18B20 y dos dígitos de 7 segmentos con 74HC595
Con el IDE 1.0.5 r2 me da estos errores.... y ya no se por donde voy. Agradezco vuestra ayuda.
termometro7seg.ino: In function 'void setup()':
termometro7seg:31: error: 'myClockPin' was not declared in this scope
termometro7seg:32: error: 'myDataPin' was not declared in this scope
No se que estás intentando hacer, pero has cambiado los nombres de los pines de clock y dados en la función setup(). En la función displayNumb() ya se llaman dataPin y clockPin, por eso la solución para esos errores es cambiar los nombres de los pines en la función de setup(), como lo siguiente:
void setup() {
// inicializa serial
Serial.begin(9600);
// inicializa sensor Temperatura
tempSens.begin();
// salida registros de desplazamiento
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
Adjunto también el programa con los errores corregidos.
Luisilva intento compilar el programa rectificado que me adjuntaste y me dan estos errores:
( que versión IDE tienes...? )
C:\Users\F2V\Desktop\arduino-1.0.5-r2\libraries\OneWire\OneWire.cpp:85:24: error: WConstants.h: No such file or directory
C:\Users\F2V\Desktop\arduino-1.0.5-r2\libraries\OneWire\OneWire.cpp: In constructor 'OneWire::OneWire(uint8_t)':
C:\Users\F2V\Desktop\arduino-1.0.5-r2\libraries\OneWire\OneWire.cpp:93: error: 'digitalPinToBitMask' was not declared in this scope
C:\Users\F2V\Desktop\arduino-1.0.5-r2\libraries\OneWire\OneWire.cpp:94: error: 'digitalPinToPort' was not declared in this scope
C:\Users\F2V\Desktop\arduino-1.0.5-r2\libraries\OneWire\OneWire.cpp:94: error: 'portInputRegister' was not declared in this scope
C:\Users\F2V\Desktop\arduino-1.0.5-r2\libraries\OneWire\OneWire.cpp: In member function 'uint8_t OneWire::reset()':
C:\Users\F2V\Desktop\arduino-1.0.5-r2\libraries\OneWire\OneWire.cpp:127: error: 'delayMicroseconds' was not declared in this scope
C:\Users\F2V\Desktop\arduino-1.0.5-r2\libraries\OneWire\OneWire.cpp:134: error: 'delayMicroseconds' was not declared in this scope
C:\Users\F2V\Desktop\arduino-1.0.5-r2\libraries\OneWire\OneWire.cpp: In member function 'void OneWire::write_bit(uint8_t)':
C:\Users\F2V\Desktop\arduino-1.0.5-r2\libraries\OneWire\OneWire.cpp:157: error: 'delayMicroseconds' was not declared in this scope
C:\Users\F2V\Desktop\arduino-1.0.5-r2\libraries\OneWire\OneWire.cpp:165: error: 'delayMicroseconds' was not declared in this scope
C:\Users\F2V\Desktop\arduino-1.0.5-r2\libraries\OneWire\OneWire.cpp: In member function 'uint8_t OneWire::read_bit()':
C:\Users\F2V\Desktop\arduino-1.0.5-r2\libraries\OneWire\OneWire.cpp:185: error: 'delayMicroseconds' was not declared in this scope
Las nuevas versiones del IDE trabajan con el fichero de constantes Arduino.h y las antiguas (como la 023 que comentas) con WConstants.h por lo que segun con que version del IDE trabajes has de usar un fichero u otro para que no te de errores.
Con el IDE 0023...no da errores ..pero intento simularlo con Proteus y no funciona bien. Ajunto archivo Proteus....ya no se que hacer.
Muchas gracias a todos por ayudarme........espero adquirir mas conocimientos con vuestra ayuda....los principios son difíciles para mi.
( En la simulación, parece que los segmentos en los píns de salidas de los 74HC595 no están organizados o relacionados como a,b,c,d,e,f,g ). Se encienden los display de 7 segmentos pero no muestran las numeraciones correctas del DS18B20.
Aca la solucion, estaban mal configurados en el IDE.
Cuando hagas definiciones de bits como lo de los digitos de leds, anota como es tu convención, o sea como identificas los segmentos y el byte, en tu caso es
x g f e d c b a
Segmento de LSB a MSB desde a to g.
entonces un 6 ser forma (hice el 6 largo)
b01111101 pero tambien podria ser el 6 corto sin el palito en a
b01111100
Muchísimas gracias por tu gran ayuda. Parece que ahora funciona bien.....tengo el ordenador un poco lento y no funciona el Proteus en tiempo real...pero bueno es cuestión de mejorar mi ordenador actual.
Salu2