Использование 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);
}
}
Без схемы (даже от руки), трудно что то внятно посоветовать.