Помогите пожалуйста разобраться.
Всем привет. столкнулся с некоторыми проблемами при работе с Ардуино нано. Конкретно: не работает термодатчик и проблемы с герконом.
На счет термодатчика (DS18B20) проблема в том что в инете нашел 2 схемы подключения:
1. левая нога - земля, средняя аналоговый выход, правая - питание. После подключения с датчика постоянно снимается 4.99 вольт и иногда 4.98 на понижение и повышение температуры не реагирует.
2.все так же но аналог и питание соединены резистором на 4.7 КОм. здесь значение абсолютно случайные никакой закономерности или зависимости не увидел. код привожу ниже
void setup() {
Serial.begin(9600);
}
void loop() {
int reading = analogRead(0);
float voltage = reading * 5.0;
voltage /= 1024.0;
Serial.print(voltage); Serial.println(" volts");
float temperatureC = voltage * 100;
Serial.print(temperatureC); Serial.println(" degress C");
delay(1000);
}
Геркон. тестером проверял на магнит реагирует, но почему то на Ардуино не работает(или у меня руки кривые, что более вероятно). Подключен был так: во 2 цифровой порт и на землю. Так же была подключена лампочка(для проверки) отдельно от геркона. Идея в том что, когда через геркон течет ток - лампочка светится. код привожу
byte check;
void setup() {
pinMode(5,1);
pinMode(2,0);
}
void loop() {
check=digitalRead(2);
if (check == 1){
digitalWrite(5,1);
}
else{
digitalWrite(5,0);}
delay(3);
}
Перепробовал кучу вариантов, не могу понять в чем проблема помогите, если разбираетесь))
P.S. извините за ошибки, если есть.
пауза в 3 мс маловато, ставь 3 000
не выставлены режимы работы пинов
pinMode(pinNum, OUTPUT);
http://arduino-project.net/podklyuchenie-ds18b20-arduino/
delay() работает только в ветке else. Паузу между циклами вставить было бы неплохо.
Макросы весь мир не зря использует. Вставлять вместо них значения напрямую - дурной тон, а не показатель крутости.
RTFM не? http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf
Для ардуины библиотека должна быть 1wire
http://playground.arduino.cc/Learning/OneWire
вот статейка с куском кода, правда на английском
видимо, без библиотеки OneWire не обойтись