Impulzusszámlálás
- sleepwalker
- DrótVégénSzéndarab
- Hozzászólások: 32
- Csatlakozott: 2010. december 26. vasárnap, 7:00
Nem akarok bolhából elefántot csinálni vagy elveszni a részletekben, SW - ből megoldani meg végképp nem (egyenlőre) .Most még csak az alapokat sajátítom el , nem szégyenlem elmondani hogy a programmban megoldani a pergésmentesítést nem menne , lévén hogy abszolút kezdő vagyok . A nyákhely nem számít mert nincs és nem is lessz, egyenlőre prototípusként fog működni . A HW a következő : 1 db Arduino panel és 1db dugaszolós próbapanel vagy 1 db forrszemes próbapanel (nyilván forrasztgatni több meló )és persze a külső alkatrészek. Azt hogy hogyan oldom meg elektronikailag már az én problémám. Az hogy "igénytelen" nem érdekes , rajtam kívül senki nem fogja látni, cserkész becsszó.(A fentebb elmondottak csak és kizárólag építő jellegüek , kérem senki ne vegye úgy hogy okoskodnék , kioktatnák stb.)
Tényleg mondom, hogy lépésenként gondold végig, hogy hogyan működjön. Folyamatábra a kulcsa mindennek! (Most tekintsünk el attól, hogy prelleg, ez a folyamatábrába nagyon könnyen utólag berakható).
Szóval első lépés:
- gomb megnyom
A többi lépésnek hogy kell lennie? a Számoljon valami gombnyomásra, az NINCS komplex utasításként benne....
Neked kell a folyamatot leírni, majd ez alapján! leprogramozni...
Hibát keresni a folyamatábrán _sokkal_ könnyebb, mintha programot kellene bogarászni.....
Szóval első lépés:
- gomb megnyom
A többi lépésnek hogy kell lennie? a Számoljon valami gombnyomásra, az NINCS komplex utasításként benne....
Neked kell a folyamatot leírni, majd ez alapján! leprogramozni...
Hibát keresni a folyamatábrán _sokkal_ könnyebb, mintha programot kellene bogarászni.....
- sleepwalker
- DrótVégénSzéndarab
- Hozzászólások: 32
- Csatlakozott: 2010. december 26. vasárnap, 7:00
Robert parancsolj:
(A SW természetesen elindult , az arduino müködik)
0:A program fut, várakozás a beérkező impulzusra, számláló nullázva, a beérkező impulzusok száma 5 kell hogy legyen , utána következhet a led bekapcsolása, a beérkező jelek közti időtartam lényegtelen.
1: Gomb benyomása, elengedés , impulzus létrejött
2: A jel érzékelése , számláló 1-re állítása (és így tovább 5-ig)...
3 : 5. gombnyomás . számláló 5-ön áll , következő folyamat kiváltása:
3a: led bekapcsolása, majd 1mp után ki
4: program előlről (0)
a 2 beérkező inpulzus , vagyis 2 gombnyomás közti időtartam akármennyi lehet , ez lényegtelen , lehet 1 perc vagy 1 hét is
(A SW természetesen elindult , az arduino müködik)
0:A program fut, várakozás a beérkező impulzusra, számláló nullázva, a beérkező impulzusok száma 5 kell hogy legyen , utána következhet a led bekapcsolása, a beérkező jelek közti időtartam lényegtelen.
1: Gomb benyomása, elengedés , impulzus létrejött
2: A jel érzékelése , számláló 1-re állítása (és így tovább 5-ig)...
3 : 5. gombnyomás . számláló 5-ön áll , következő folyamat kiváltása:
3a: led bekapcsolása, majd 1mp után ki
4: program előlről (0)
a 2 beérkező inpulzus , vagyis 2 gombnyomás közti időtartam akármennyi lehet , ez lényegtelen , lehet 1 perc vagy 1 hét is
- sleepwalker
- DrótVégénSzéndarab
- Hozzászólások: 32
- Csatlakozott: 2010. december 26. vasárnap, 7:00
Kapu48 : elfogadható mértékben kommentáltam is
int ledPin = 3; // ide kerül a led
int PulsePin = 4; // itt fogadja a bajövő jeleket
int PulseCounter = 0; // számláló 0-ra állítva
void setup() {
pinMode(PulsePin,INPUT); // 4-es pin bemenetként
pinMode(ledPin,OUTPUT); // 3-as pin kimenetként
}
void loop()
{
int (PulseCounter=10); //számlálandó impulzus 10
digitalWrite(ledPin, HIGH); // led világítani kezd
delay(1000); // 1 mp-s várakozás
digitalWrite(ledPin,LOW); // led kikapcsolása
}
Arduinoban lefordítva nem jelzett hibát , de ez nem jelent semmit .
int ledPin = 3; // ide kerül a led
int PulsePin = 4; // itt fogadja a bajövő jeleket
int PulseCounter = 0; // számláló 0-ra állítva
void setup() {
pinMode(PulsePin,INPUT); // 4-es pin bemenetként
pinMode(ledPin,OUTPUT); // 3-as pin kimenetként
}
void loop()
{
int (PulseCounter=10); //számlálandó impulzus 10
digitalWrite(ledPin, HIGH); // led világítani kezd
delay(1000); // 1 mp-s várakozás
digitalWrite(ledPin,LOW); // led kikapcsolása
}
Arduinoban lefordítva nem jelzett hibát , de ez nem jelent semmit .
Majdnem jó csak az „int (PulseCounter=10);” Változó létrehozása.
Helyet egy vizsgálat kellene!
Még dolgoz rajta kicsit!
Helyet egy vizsgálat kellene!
Kód: Egész kijelölése
void loop()
{
// Mi növeli a PulseCountert? nincsen gomb vizsgálat
//???
// Ha a PulseCounter elérte a 10-et
If (PulseCounter==10); {//számlálandó impulzus 10
digitalWrite(ledPin, HIGH); // led világítani kezd
delay(1000); // 1 mp-s várakozás
digitalWrite(ledPin,LOW); // led kikapcsolása
PulseCounter = 0; // számláló nullázása
}
}
A hozzászólást 1 alkalommal szerkesztették, utoljára kapu48 2010. december 29. szerda, 17:37-kor.
- sleepwalker
- DrótVégénSzéndarab
- Hozzászólások: 32
- Csatlakozott: 2010. december 26. vasárnap, 7:00
- sleepwalker
- DrótVégénSzéndarab
- Hozzászólások: 32
- Csatlakozott: 2010. december 26. vasárnap, 7:00
Csak az impulzust kell számlálnia . Azt hiszem erre a jó példa a következő lenne : képzelj el egy szálloda (Arduino) portását (program, és ő neki kell számlálni) aki csak pl minden tizedik vendégnek (impulzus) nyitja ki az ajtót hogy bemehessen (led bekapcsolása).
A vendégek (impulzusok) érkezésének ideje teljesen véletlenszerű . Magyarán szólva a portás bácsi "forgalomszámlálást" végez.
(Elnézést ha elvont vagyok és kiborítanék valakit , nem áll szándékomban).
A vendégek (impulzusok) érkezésének ideje teljesen véletlenszerű . Magyarán szólva a portás bácsi "forgalomszámlálást" végez.
(Elnézést ha elvont vagyok és kiborítanék valakit , nem áll szándékomban).
- sleepwalker
- DrótVégénSzéndarab
- Hozzászólások: 32
- Csatlakozott: 2010. december 26. vasárnap, 7:00
( Titokban reménykedtem hogy megérted a hasonlatomat , de azért író v filozófus még ettől nem leszek.)
Nem jöhet egy időben 2 vendég mert 1 ajtó van a vendégek meg csak egyedül jönnek szép sorban egymás után (csak 1 gomb van)
Az ajtó nem fordul körbe (az ajtó hiper-szuper körbefordulás , remegés (pergés) biztos ).
A portás bácsi a SW (ne tévesszük meg kérem a színmű szereplőit )
A szálloda a HW - Arduino(ajtó=pin)
A körülmények mind ideálisak , csak valahogy az a fránya portást nem lehet rábírni hogy számláljon .
Nem jöhet egy időben 2 vendég mert 1 ajtó van a vendégek meg csak egyedül jönnek szép sorban egymás után (csak 1 gomb van)
Az ajtó nem fordul körbe (az ajtó hiper-szuper körbefordulás , remegés (pergés) biztos ).
A portás bácsi a SW (ne tévesszük meg kérem a színmű szereplőit )
A szálloda a HW - Arduino(ajtó=pin)
A körülmények mind ideálisak , csak valahogy az a fránya portást nem lehet rábírni hogy számláljon .
Jaj Róbert bácsi!
Te is mindég Bascomul gondolkozol!
Ez Arduinó!
Feltétel vízsgálatnál „==” egyenlő e?
És várakozás: delay(1000);
ha (inputpin == low) //'megnyomtam
{
szamlal=szamlal +1; //Számlálót növelem 1-el!
delay (100); //'hogy lassam h megy-e..
} // Ha vége!
Feltétel vizsgálat :
Comparison Operators:
x == y (x is equal to y)
x != y (x is not equal to y)
x < y (x is less than y)
x > y (x is greater than y)
x <= y (x is less than or equal to y)
x >= y (x is greater than or equal to y)
Te is mindég Bascomul gondolkozol!
Ez Arduinó!
Feltétel vízsgálatnál „==” egyenlő e?
És várakozás: delay(1000);
ha (inputpin == low) //'megnyomtam
{
szamlal=szamlal +1; //Számlálót növelem 1-el!
delay (100); //'hogy lassam h megy-e..
} // Ha vége!
Feltétel vizsgálat :
Comparison Operators:
x == y (x is equal to y)
x != y (x is not equal to y)
x < y (x is less than y)
x > y (x is greater than y)
x <= y (x is less than or equal to y)
x >= y (x is greater than or equal to y)
A hozzászólást 2 alkalommal szerkesztették, utoljára kapu48 2010. december 29. szerda, 23:28-kor.