Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define LEN(x) (sizeof(x)/sizeof(x[0]))
- /* connected leds (map temperature between 0°C and 64 °C) */
- static int leds[] = {13, 12, 11, 10, 9, 8};
- void setup(void)
- {
- int i;
- Serial.begin(9600);
- for (i = 0; i < LEN(leds); i++) {
- pinMode(leds[i], OUTPUT);
- digitalWrite(leds[i], 0);
- }
- }
- void update_leds(int temp) {
- int i;
- static int old = 255;
- if (temp != old) {
- //Serial.println("UPDATE LEDS");
- old = temp;
- for (i = 0; i < LEN(leds); i++) {
- if (temp & (1 << i))
- digitalWrite(leds[i], 255);
- else
- digitalWrite(leds[i], 0);
- }
- }
- }
- int get_temp(void) {
- static int temp = 0;
- static unsigned long last_update = 0;
- unsigned long now;
- now = millis();
- if (!last_update || now - last_update > 10000) { /* every 10 s */
- //Serial.println("READ TEMP");
- temp = 5.0 * analogRead(0) * 100.0 / 1024.0;
- last_update = now;
- }
- return temp;
- }
- void loop(void) {
- static char cmd = '\0';
- char rbyte;
- update_leds(get_temp());
- if (Serial.available() > 0) {
- if ((rbyte = Serial.read()) == '\r') {
- if (cmd == 't') {
- Serial.println(get_temp());
- }
- cmd = '\0';
- } else {
- cmd = rbyte;
- }
- }
- }
Add Comment
Please, Sign In to add comment