Использование HIGH и LOW
- Войдите на сайт для отправки комментариев
Пт, 16/12/2016 - 21:39
Добрый вечер!
Написал код с использованием HIGH и LOW, но результат получается противоположный.
Когда к датчику Холла подношу магнит программа понимает это как LOW и наоборот. Без магнита считает от i до нуля бесконечно, а без него делает как должно быть-поднесли магнит, досчитали до нуля, загорелся диод и гаснет он только при удалении магнита...
В чем ошибка, помогите , пожалуйста!
#define led 7 #define Button_1 9 //тумблер #define SensorPin1 A0 //датчик Холла int i=0; int a=1; void setup() { Serial.begin(9600); pinMode(9, INPUT_PULLUP); pinMode(4, OUTPUT); pinMode(A0, INPUT); } void loop() { i=a*5; digitalWrite(led, LOW); //гасим диод if(digitalRead(9)==HIGH&&digitalRead(A0)==HIGH) //при условии что включен тумблер и магнит подведен к датчику Холла { for (; i >= 0; i--) //досчитали до нуля, должен загореться диод и гореть до тех пока, пока не уберут датчик Холла, то есть (digitalRead(A0)==LOW), когда снова подведут снова запускается обратный отсчет { Serial.println(i); delay(500); } } digitalWrite(led, HIGH); if(digitalRead(A0)==LOW) { digitalWrite(led, LOW); } }
Без схемы (даже от руки), трудно что то внятно посоветовать.