#09-es kapcsoló áramkör

A "60 nap alatt Arduino" tanfolyam házi feladatai és közvetlen témái
M.Lajos
Újonc
Újonc
Hozzászólások: 3
Csatlakozott: 2017. július 15. szombat, 20:05

#09-es kapcsoló áramkör

HozzászólásSzerző: M.Lajos » 2017. július 15. szombat, 20:29

Sziasztok,
összeraktam, működik.
DE hogy van az, hogy ha a kapcsoló nyitott akkor a digitalread(6) 1 azaz HIGH értéket ad vissza?
Akár "kiemelhetem" az áramkörből a kapcsolót, D6-on HIGH a jelszint, ha zárom a kapcsolót meg "persze" LOW lesz.
Én azt gondoltam, hogy a kapcsoló zárása-nyitása fordított jelszintet produkál...

A kódba teszt célból beletettem a soros monitorra történő visszajelzést, de valahogy mégsem értem a dolgot.

Megköszönöm, ha valaki tisztába teszi ezt számomra.
M.Lajos

A program:
/*
Nyomogomb
Demonstracios program a nyomogomb - LED kapcsolathoz
60 nap alatt Arduino tanfolyam
(c) TavIR http://www.tavir.hu
*/

void setup(){
Serial.begin(9600);
// soros sebesseg
Serial.println("Start...");
pinMode(6, INPUT);
// D6 labon kapcsolo, lab bemenet
pinMode(7, OUTPUT);
// D7 lab: LED
// digitalWrite(6, HIGH);
// D6-on felhuzo bekapcsol
}

void loop() {
Serial.println( " 6-os ");
Serial.print( digitalRead(6));
Serial.print( " 7-es ");
Serial.print( digitalRead(7));
digitalWrite(7, digitalRead(6));
// a D6 jelszintje a D7-re kiirodik
}

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3167
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

Re: #09-es kapcsoló áramkör

HozzászólásSzerző: kapu48 » 2017. július 16. vasárnap, 1:23

Van beépítve minden bemeneten felhúzó ellenállás, amit 1 fet kapcsol a tápfeszre.
Az utasítás hatására: digitalWrite(6, HIGH); // D6-on felhúzó bekapcsol

Ez pontosan azt előzi meg, hogy bizonytalan állapot legyen a bemeneten.
Mivel minden mechanikus kapcsolónak van billenési állapota, amikor éppen nem érintkezik sehova.
Ezt kiküszöbölhetik vele.

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9676
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: #09-es kapcsoló áramkör

HozzászólásSzerző: Robert » 2017. július 16. vasárnap, 9:54

A 9. lecke 2. bekezdése:
"A valóság azonban, hogy nyitott állapotban antennaként a környezeti zajt összeszedi és meghatározhatatlan potenciálra kerül a kivezetés. Ezt kivédendő a chipen belüli belső ellenállást bekapcsoljuk, vagy külső felhúzó-ellenállást használunk. Így, nyitott kapcsoló esetén az Arduino bemeneten 5 V feszültséget mérhetünk a fenti kapcsolás alkalmazásával!

De mi is az a belső felhúzó-ellenállás? Egyszerűen egy ki/bekapcsolható ellenállás a chip tokján belül a kivezetés és a tápfeszültség közt. A praktikusság és a könnyebb kezelhetőség miatt ugyanúgy kell kezelni, mint a kimenetek esetén a láb magas vagy alacsony szintjét. Azonban ezt a megoldást csak végszükség esetén használjuk! Ha módunk van rá, külső felhúzó-ellenállást építsünk be az áramkörbe. Ennek értéke 1..20 kohm szokott lenni (a szokásos gyakorlat alapján). Ha túl kicsi az értéke, akkor nagy áram folyik át a kapcsolón záráskor és az érintkezőkön a szikraképződés miatt oxidáció indul meg - míg ha túl nagy az értéke, akkor a kapcsoló és a vezetékezése antennaként a hálózati zavarjeleket szedi össze."
http://www.tavir.hu - a gazda :)

M.Lajos
Újonc
Újonc
Hozzászólások: 3
Csatlakozott: 2017. július 15. szombat, 20:05

Re: #09-es kapcsoló áramkör

HozzászólásSzerző: M.Lajos » 2017. július 16. vasárnap, 10:04

Köszönöm a választ.

Én az általad írt sort
digitalWrite(6, HIGH);
egyébként kikommenteltem, de egyébként mindegy, mert ezzel a sorral vagy anélkül is a
digitalRead(6) nekem HIGH állapotot ad vissza amikor az áramkör nyitott. (tehát a kapcsoló nyitott)
A zárt kapcsoló állapot esetén kapok LOW állapotot a D6-on.
Ez az amit nem értek. Lehet, hogy túl triviális a kérdésem.

vargham
Bitmanipulátor
Hozzászólások: 134
Csatlakozott: 2014. január 8. szerda, 8:32
Kapcsolat:

Re: #09-es kapcsoló áramkör

HozzászólásSzerző: vargham » 2017. július 16. vasárnap, 13:52

> A zárt kapcsoló állapot esetén kapok LOW állapotot a D6-on.
Ha a kapcsoló kikapcsolt állapotában a mikrokontroller bemenete tápfeszültségen van, és a kapcsoló bekapcsolt állapotában kerül földre, akkor ez így van rendjén. Ilyenkor a HIGH (logikai 1, azaz 5 Volt) jelenti a kikapcsolt állapotot, a LOW (logikai 0, azaz 0 Volt) pedig a bekapcsolt állapotot.

Ugyanez igaz a kimenetre is. Ha egy kimenet és a föld közé egy LED-et kötsz, akkor az a digitalWrite(LED, HIGH) utasításra fog világítani. Ha viszont a kimenet és a táp közé kötöd a LED-et, akkor az a digitalWrite(LED, LOW) utasításra fog világítani.

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3167
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

Re: #09-es kapcsoló áramkör

HozzászólásSzerző: kapu48 » 2017. július 16. vasárnap, 13:58

Mivel csak 2 féle állapota lehet a digitális bemenetnek! Ezért az említett zajok miatt.
Ha nem fix LOW? Akkor lehet bármi, esetedben éppen HIGH.
De ha több 100* mérnéd egymás után? Biztosan kapnál értékeket vegyesen.

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3167
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

Re: #09-es kapcsoló áramkör

HozzászólásSzerző: kapu48 » 2017. július 16. vasárnap, 14:16

Bővebben 76. oldal: Ports as General Digital I/O
ATMEL 8-BIT MICROCONTROLLER.PDF:http://www.atmel.com/ru/ru/Images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet.pdf

Ha Pxn > bemenet?
Rögtön felül az említett ellenállás és FET látható.
És a bemeneti logika az alsó tömbben van ábrázolva.

M.Lajos
Újonc
Újonc
Hozzászólások: 3
Csatlakozott: 2017. július 15. szombat, 20:05

Re: #09-es kapcsoló áramkör

HozzászólásSzerző: M.Lajos » 2017. július 17. hétfő, 7:50

Köszönöm a segítő/magyarázó válaszaitokat! :mrgreen:


Vissza: “60 nap alatt Arduino - Házi feladatok”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég