67 lines
1.5 KiB
C++
67 lines
1.5 KiB
C++
/*
|
|
* lecture des capteurs de temperature LM35
|
|
*/
|
|
/* -------------------------------------------------- */
|
|
|
|
#define NBVAL 4
|
|
#define DELAI 12000
|
|
|
|
/* -------------------------------------------------- */
|
|
void setup() {
|
|
Serial.begin(9600);
|
|
pinMode(LED_BUILTIN, OUTPUT);
|
|
|
|
Serial.print("\n");
|
|
/* XXX */
|
|
/* changing the voltage reference of the ADC
|
|
* greatly increase the prcision on the limited
|
|
* range of our temperatures.
|
|
*/
|
|
analogReference(INTERNAL1V1); // Pour Arduino Mega2560
|
|
|
|
delay(1000);
|
|
Serial.print("M running\n");
|
|
}
|
|
/* -------------------------------------------------- */
|
|
/* ================================================== */
|
|
short adc_pins[] = { A0, A1, A2, A4 };
|
|
/* -------------------------------------------------- */
|
|
void updatevalues(short *ptr)
|
|
{
|
|
int foo;
|
|
digitalWrite(LED_BUILTIN, HIGH);
|
|
for (foo=0; foo<NBVAL; foo++) {
|
|
ptr[foo] = analogRead(adc_pins[foo]);
|
|
delay(200);
|
|
}
|
|
digitalWrite(LED_BUILTIN, LOW);
|
|
}
|
|
/* -------------------------------------------------- */
|
|
void sendvalues(short *ptr)
|
|
{
|
|
int foo;
|
|
|
|
Serial.print("T");
|
|
for (foo=0; foo<NBVAL; foo++) {
|
|
Serial.print(" ");
|
|
Serial.print(ptr[foo]);
|
|
}
|
|
Serial.print("\n");
|
|
}
|
|
/* -------------------------------------------------- */
|
|
void update_and_send(void)
|
|
{
|
|
short values[NBVAL];
|
|
|
|
updatevalues(values);
|
|
sendvalues(values);
|
|
}
|
|
/* ================================================== */
|
|
void loop() {
|
|
update_and_send();
|
|
delay(DELAI);
|
|
}
|
|
|
|
/* -------------------------------------------------- */
|
|
|