2017-02-19 26 views
0

Я делаю простой датчик температуры для освещения одного из двух светодиодов в зависимости от температуры.нет макета Светодиодный выход

По какой-то причине светодиодный выход только один раз мигает встроенным светодиодом (контакт 13 на Эдисоне).

Мой выходной сигнал работает нормально, но я не уверен, почему мой код работает некорректно.

Фото проводки здесь.

Photo of the wiring

int temppin = 0; 
int ledhigh = 7; 
int ledlow = 8; 


void setup() 
{ 
    Serial.begin(9600); 
    pinMode(temppin, INPUT); 
    pinMode(ledhigh, OUTPUT); 
    pinMode(ledlow, OUTPUT); 
} 


void loop()      
{ 

int tempout = analogRead(temppin); 


float volts = tempout * 5.0; 
volts /= 1024.0; 
float temp = (volts - 0.5) * 100 ; 
Serial.print(temp); Serial.println(" celsius"); 

if (temp > 0){ 
    Serial.print("high temp ="); 
    digitalWrite(ledhigh, HIGH); 
} else {digitalWrite(ledlow, HIGH); 
    Serial.print("low temp"); 
} 


delay(3000);         
} 
+1

Попробуйте переключить светодиоды (так высоко, является низкая). Если вы получите тот же результат ... тогда я смущен. Код и проводка отлично смотрятся. –

+0

, перевернув светодиод + и - или код? Я попробовал оба. такой же результат. 330 Ом, если это имеет значение. – Zane

+0

Вы пытались отключить переключение контактов для проводки (используя другие контакты, кроме 0, 1, 2)? Не думайте, что это имеет значение, но вам не хватает новой строки после того, как else { –

ответ

0

Проблема, вероятно, что вы пытаетесь использовать аналоговые входные контакты на выходе. Вам нужно использовать цифровые контакты.

Как объяснено в этом видео:

https://youtu.be/BtLwoNJ6klE?t=50s