Stránka 1 z 1

H-můstek,koncové spínače

Napsal: 31 led 2021, 14:26
od Briegstone
Zdravím mám dotaz,
Jde o to že chci zavírat a otevírat dvířka kurníku pomoci H-můstku v určitém čase ,ale mám problém s tím že pokud dvířka dojedou na koncák tak koncák zůstane sepnutý,jakmile program dá pokym aby se dvířka pohnuly opačným směrem tak je koncák ihned vypne protože je (sepnutý),
prosím o radu jak nastavit v programu ty koncáky aby 1. koncák platil jen pro část programu ?

program zde:

if(t.hour == 12 && t.min == 00 && t.sec == 2) //otevirání
{
digitalWrite(motor1pin1, HIGH); //motor1 pin HIGH
digitalWrite(motor1pin2, LOW);
}
if(digitalRead(switchPin1) ==LOW)
{
digitalWrite(motor1pin1, LOW); //motor1 pin HIGH
digitalWrite(motor1pin2, LOW);
}
if(t.hour == 12 && t.min == 00 && t.sec == 10) //otevirání
{
digitalWrite(motor1pin1, LOW); //motor1 pin HIGH
digitalWrite(motor1pin2, HIGH);
}
if(digitalRead(switchPin2) ==LOW)
{
digitalWrite(motor1pin1, LOW); //motor1 pin HIGH
digitalWrite(motor1pin2, LOW);
}
delay (1000);

}

Re: H-můstek,koncové spínače

Napsal: 31 led 2021, 14:52
od analytik
Z dotazu není jasné, jestli koncové spínače fyzicky zasahují do napájení motoru nebo jen informují program, že má vypnout napájení.
Obecně je vhodné přečíst stav koncáku, uložit tuto informaci do pomocné proměnné a tu si pak podle potřeby nastavovat bez ohledu na fyzický stav koncového spínače. I když pro průběh zavírání je stav konc. spínače č.1 irelevantní.

Re: H-můstek,koncové spínače

Napsal: 31 led 2021, 15:03
od Briegstone
koncové spínače pouze informují program I/0 ,tzn. že samotné arduino dáví pokyn H-můstku aby se otáčel motor,
nemáte nějaký přiklad jak to uložit do pomocné proměnné (jsem začátečník abych se měl od čeho inspirovat).

Re: H-můstek,koncové spínače

Napsal: 31 led 2021, 15:11
od analytik
Jak to, že se motor nerozeběhne na zavírání, když se stav koncáku 1 testuje jen při otevírání?
Nebo běží celý program pro oba dva směry pohybu stejně?

Re: H-můstek,koncové spínače

Napsal: 31 led 2021, 15:16
od Briegstone
ano celý program běži pro oba dva směry pohybu stejně ,tzn. že platí pro celý program 1. a zároven 2. koncák oba dva mužou vypnout pohyb motoru .

Re: H-můstek,koncové spínače

Napsal: 31 led 2021, 15:26
od analytik
Problém asi bude v testování času. Zdá se, že podmínka pro start zavírání je definována tak precizně, že se málokdy splní, takže program se věnuje pouze zavírání a to je koncákem 1 vyloučeno.
Rozumnější by bylo stanovit časovou podmínku na čas je větší než... anebo podle aktuálního stavu koncáků se rozhodnout, jestli se bude otevírat nebo zavírat.

Re: H-můstek,koncové spínače

Napsal: 31 led 2021, 15:51
od analytik
Ještě malý dodatek.
Kurník se tu už několikrát řešil a dá se najít v hotových projektech vyhledáním textu "dvierka kurína".

Re: H-můstek,koncové spínače

Napsal: 01 úno 2021, 11:01
od marh
mál by si nakresliť ako to máš riešené

ten kód máš 2x otváranie a nie otváranie ráno a zatváranie večer a máš tam rovnaké testovanie konc.spínača s prehodením smerom otáčania, takže preto sa zastaví ihneď

máš mať dva koncové spínače alebo pri otváraní netestovať spínač na kurníku ale len napr. 5s otvárať(čiže kedy sú dvere dosť otvorené, časové otváranie, 90° otvorenie dverí)
ak sa dvere môžu otvoriť až na 150° tak čas môže byť napr. 5-8s čiže netreba meranie prúdu pri zaťaží.
aby sa nepoškodil motor - treba koncový spínač alebo merať spotrebu motora( ak sa zaťaží, tak to znamená, že je na doraz, čiže prúdová ochrana)

mechanický koncový spínač
hallová sonda
IR senzor
prúdový snímač


pozri odkaz dole. Nemusíš testovať konc.stav dverí ale dáš otváranie a zatváranie napr. 10s a motor sa nepreťaží ale vypne ako to vidíš na obrázku na odkaze (aktuátor)
ráno dáš mostík +- polarity a večer -+ polarity pre mostík a potrebný čas otvárania a zatvárania a o ochranu motora sa postará zapojenie so spínačmi a diódami pre aktuátor.


viewtopic.php?f=37&t=2295&p=13418#p13418

Obrázek

Re: H-můstek,koncové spínače

Napsal: 01 úno 2021, 17:53
od kiRRow
Se snažíš stvořit asi něco takového ... mi příjde ... budeš si to muset ale doupravit dle svých potřeb.

Kód: Vybrat vše

if(jeCasMitOtevreno == true) { // je potřeba mít otevřené dvířka
	if(jedenKoncak == HIGH) { // ještě to nenabouralo do koncáku
	  // toč motorem ve směru otevření
	} else { // nabouralo to do koncáku1
	  // zastav motor
	}
} else { // dvere je potreba mit zavrene
	if(druhyKoncak == HIGH) { // ještě to nenabouralo do koncáku
	  // toč motorem ve směru zavření
	} else { // nabouralo to do koncáku2
	  // zastav motor
	}
}