#1 Re: Програмування Arduino » Нужна помощь: Кнопка, тайминг, реле » 2015-08-13 09:48:42

В общем я тут покумекал и пришёл к вот такому результату:

int analogInput = A0;
int regim=1;
int flag=0;
int value = 0;
float val = 0.0;
float voltage = 0.0;
float R1 = 20000.0;
float R2 = 470000.0;

void setup()   
{
Serial.begin(115200);
pinMode(13,INPUT_PULLUP);
pinMode(10,OUTPUT);   
pinMode(9,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(A0, INPUT);     
}

void loop()
{
value = analogRead(A0);
val = (value * 5) / 1023.0;
voltage = val / (R2/(R1+R2));
Serial.println(voltage);
delay(1);

if (voltage>4)
{digitalWrite(7,HIGH);
digitalWrite(8,HIGH);}

if (voltage<0.5)
{digitalWrite(7,HIGH);
digitalWrite(8,LOW);}

if (voltage>=1.0&& voltage<=1.5 )
{digitalWrite(7,LOW);
digitalWrite(8,HIGH);}

if (voltage>=1.90 && voltage<=1.98)
{if(digitalRead(13)==HIGH&&flag==0)
   {regim++;   
     flag=1;}         

     if(regim>4)
     {regim=1;}
   
     if(digitalRead(13)==LOW&&flag==1)
     {flag=0;}

     if(regim==2)
     {digitalWrite(10,HIGH);
     digitalWrite(9,LOW);}
     
     if(regim==4)
     {digitalWrite(9,HIGH);
     digitalWrite(10,LOW);}
}
}

#2 Re: Програмування Arduino » Нужна помощь: Кнопка, тайминг, реле » 2015-08-12 04:16:07

Всем привет. Вот такая проблема - не могу научить ардуино понимать числа с запятой. В общем. У меня есть кнопка. Она принимает два положения верхнее и нижнее. При опускании кнопки вниз  мониторинг порта говорит что аналоговый  пин №Х принимает 0.86 вольт, а в верхнем положении 1.72 . Нужно чтобы при этих вольтажа переключалось два реле. А именно 0.86 - горит только первое реле, 1.72 - горит только второе. Мне кажется что здесь нужен - map, но проблема в том что я не понимаю как это всё должно реализовываться. Помогите пожалуйста.

Підвал форуму