Ahoj,
hraju si s arduinem nano v3, a potřebuji na ovládacím pinu po připojení napětí 5V pracovat s progamem. Vše funguje, jen je problém, že když přiletuji nějaký vodič na pin ze kterého probíhá čtení, tak to vyhodnotí jako HIGH a pokračuje v programu. Taktéž stačí když se kontaktu jen dotknu. Zkoušel jsem i Analogový pin s tím, že nad 220 z maximálních 250 hodnot se to opakovalo. Potřebuji, aby při připojení vodiče se nic nedělo. máte někdo nějaký nápad co s tím? (je to zařízení na spínání a vypínání UPS (nechci aby dobíjela baterii protože na to mám solár a tak chci v případě obnovení napájení ze sítě byla ups vypnuta a pomocí relé se zátěž zpět připojí na síť.
mám tento kód:
int vstup1 = 0;
int vystup1 = 0;
int vystup2 = 0;
int stavmenice = 0;
void setup() {
// initialize digital pins as an input/output.
pinMode(2, INPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT); //KONTROLNÍ PIN PRO ZJIŠTĚNÍ, KDE SE PROGRAM NACHÁZÍ
digitalWrite(3, HIGH); //POZOR! RELÁTKA SE SPÍNAJÍ HODNOTOU LOW, A ROZEPÍNAJÍ HIGH
digitalWrite(4, HIGH); //HIGH = RELÉ VYPNUTO
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
}
// the loop function runs over and over again forever
void loop() {
vstup1 = digitalRead(2);
//vystup1 = digitalWrite(2);
//vystup2 = digitalWrite(3);
if (vstup1 == HIGH) {
while (stavmenice == 0)
{
delay(5000);
digitalWrite(3, LOW); //na 2 vteřiny se sepne tlačítko napájení na měniči a tím ho zapne. //POZOR! RELÁTKA SE SPÍNAJÍ HODNOTOU LOW, A ROZEPÍNAJÍ HIGH
delay(2000);
digitalWrite(3, HIGH); //POZOR! RELÁTKA SE SPÍNAJÍ HODNOTOU LOW, A ROZEPÍNAJÍ HIGH
stavmenice = 1;
delay(2000);
digitalWrite(4, LOW); //zapnutí Nuláku relé pro provoz na UPS //POZOR! RELÁTKA SE SPÍNAJÍ HODNOTOU LOW, A ROZEPÍNAJÍ HIGH
digitalWrite(5, LOW); //zapnutí Fáze relé pro provoz na UPS
delay(3000);}}
else {
while (stavmenice == 1){
digitalWrite(4, HIGH); //odpoj zátěž od UPS a přepni na síť //POZOR! RELÁTKA SE SPÍNAJÍ HODNOTOU LOW, A ROZEPÍNAJÍ HIGH
digitalWrite(5, HIGH); //odpoj zátěž od UPS a přepni na síť
delay(1000);
digitalWrite(3, LOW); //Na 2 sekundy „stiskni tlačítko napájení na měniči“ a tím ho vypneme POZOR! RELÁTKA SE SPÍNAJÍ HODNOTOU LOW, A ROZEPÍNAJÍ HIGH
delay(2000);
digitalWrite(3, HIGH); //POZOR! RELÁTKA SE SPÍNAJÍ HODNOTOU LOW, A ROZEPÍNAJÍ HIGH
stavmenice = 0;
delay(2000);
}}
//kontrolní 4 řádky
// delay(3000);
//digitalWrite(6, LOW);
//delay(1000);
//digitalWrite(6, HIGH);
}