Impulz po stisku tlačítka
Re: Impulz po stisku tlačítka
Jaká je hodnota rezistoru mezi 5V a kolektorem PC814?
Re: Impulz po stisku tlačítka
Kód: Vybrat vše
// uvodni nastaveni
unsigned long Interval_LED = 500; // ms (unsigned long je typ pro cas (millis), pokud je u tebe jiny, pouzij ten spravny)
unsigned long Interval_pulz = 20; // ms - maximalni cas mezi pulzy, nez zacnes brat, ze skoncily
int pin_LED = 13 ; // nebo kde to mas (HIGH=sviti)
int pin_TL = 5 ;// nebo kde je tlacitko/optoclen (LOW=stisknuto)
// promenne (klidne by mohly byt v loop, ale tady je to IMHO prehlednejsi)
int Tlacitko_Pred; // minuly stav - HIGH je rozepnuto, LOW je sepnuto
int Tlacitko_Ted; // aktualni stav
unsigned long currentMillis; // aktualni millis
unsigned long beginMillis; // millis, kdyz zacal bezet cyklus
// setup
void setup() {
pinMode(pin_LED, OUTPUT);
digitalWrite(pin_LED, LOW); // explicitni zhasnuti, asi neni nutne
pinMode(button_B, INPUT_PULLUP); // nebo jen INPUT kdyz tam mas externi pullup
}
// smycka
void loop(){
// - čekej na začátek pulzu
do
Tlacitko_Ted = digitalRead(pin_TL);
while (Tlacitko_TED == HIGH ); // dokud neni tlacitko stisknute tak to cti znovu
// rozsviť LEDku
digitalWrite(pin_LED, HIGH);
// spusť časovač na 500ms,
beginMillis=millis(); // zacneme TED
do
currentMillis=millis();
while ((currentMillis-beginMillis) <= Interval_LED);
// až doběhne zhasni LEDku
digitalWrite(pin_LED, LOW);
// nacteme si stav tlacitka
Tlacitko_TED = digitalRead(pin_TL);
// spusť časovač na 10ms (nebo víc),
beginMillis = millis(); // zacneme TED
do
currentMillis = millis();
// zajima nas zacatek pulzu
Tlacitko_PRED = Tlacitko_TED;
Tlacitko_TED = digitalRead(pin_TL);
if ( Tlacitko_TED == LOW ) { // pulz trva
beginMillis = currentMillis; // resetujeme zacatek casovace na TED
};
if ( (Tlacitko_TED == HIGH) && (Tlacitko_PRED == LOW ) ) { // pulz prave skoncil
beginMillis = currentMillis; // resetujeme zacatek casovace na TED
};
while ((currentMillis-beginMillis) <= Interval_pulz); // Test, zda uz od KONCE posledniho pulzu neubehl prislusny interval
// To celé nech běžet v nekonečné smyčce - třeba loop() - coz jsme prave udelali
}
Re: Impulz po stisku tlačítka
Ondro, na tom odporu nijak nezáleží, je to jen místo Pullup, myslím, že tam je 8K2
Gilhad - díky, vypadá to profi... vyzkouším, dám vědět.
díky všem
Gilhad - díky, vypadá to profi... vyzkouším, dám vědět.
díky všem
Re: Impulz po stisku tlačítka
No, kdybys připájel na ten optočlen 20M kondenzátor, plus na kolektor, mínus na emitor tranzistoru v OC, tak ti to vyfiltruje ty impulzy, na které jsi si stěžoval
Pak tam budeš mít L při stisku tlačítka (po celou dobu stisku) bez zákmitů a jiných neplech. Kondenzátor můžeš naletovat přímo na vývody OC, bez nějakých změn na DPS.
Pak tam budeš mít L při stisku tlačítka (po celou dobu stisku) bez zákmitů a jiných neplech. Kondenzátor můžeš naletovat přímo na vývody OC, bez nějakých změn na DPS.
Re: Impulz po stisku tlačítka
Na tom odporu velmi záleží, on ten optočlen má nějaký omezený proud, který jim může protékat ... a taky nějaký proud který jim musí protékat. Právě toto ten odpor dělá. Není to žádný pullup, ale omezovací odpor aby ti ten optočlen po připojení nevybouchnul do úsměvu.
Re: Impulz po stisku tlačítka
pro gilhad
nějak jsem nenašel chybu v tom while
nějak jsem nenašel chybu v tom while
Re: Impulz po stisku tlačítka
Kód: Vybrat vše
do {
...
...
} while ...
Re: Impulz po stisku tlačítka
doufám, že máš aspoň papíry na to hrabat se někomu v elektroinstalaci domu
Re: Impulz po stisku tlačítka
No Ty máš ale starosti... můj obor je nn a neboj mám vyhl.50
gilhad - ŠLAPE TO !!!! díky
gilhad - ŠLAPE TO !!!! díky
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti