Помогите пожалуйста разобраться.

Всем привет. столкнулся с некоторыми проблемами при работе с Ардуино нано. Конкретно: не работает термодатчик и проблемы с герконом.

На счет термодатчика (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. извините за ошибки, если есть.

Вы смотрите срез комментариев. Показать все
1
Автор поста оценил этот комментарий

пауза в 3 мс маловато, ставь 3 000


не выставлены режимы работы пинов

pinMode(pinNum, OUTPUT);


http://arduino-project.net/podklyuchenie-ds18b20-arduino/

раскрыть ветку (6)
Автор поста оценил этот комментарий

где именно не выставлены? в 1 программе используются аналоговые входы там пины не надо выставлять. а во 2 есть вроде. а за ссылку спасибо большое.

раскрыть ветку (5)
Автор поста оценил этот комментарий

везде с цифрой нужно ставить направления - ввод/вывод

раскрыть ветку (4)
Автор поста оценил этот комментарий

в 1 программе нету цифры, во второй везде стоит. что не так?

раскрыть ветку (3)
Автор поста оценил этот комментарий

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

Соответственно, pinMode(pinNum, INPUT ) [еще лучше pinMode(pinNum, INPUT_PULLUP);] или pinMode(pinNum, OUTPUT)

http://arduino.ua/ru/prog/PinMode


также, при чтении цифровой ноги получите значение не 1, а HIGH

раскрыть ветку (2)
Автор поста оценил этот комментарий

если бы вы лучше почитали, то нашли бы, что HIGH & LOW как и 1 или 0 ни что иное как логичные значения а под pinNum зашифровано (внимание) номер пина, который и был указан в скобках. Код это та же сишка только адаптированная.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

человек, просящий помощи, будет рассказывать мне, как что кодить? )

ну удачи, разбирайся сам

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку