Analóg bemenetek digitális használata lehetséges?
-
bagizoltan
- Bitmanipulátor
- Hozzászólások: 128
- Csatlakozott: 2015. december 8. kedd, 19:52
Analóg bemenetek digitális használata lehetséges?
Sziasztok!
Arduino Uno R3 panelen fejlesztek. Elfogytak a digitális ki-bemeneteim. A BASCOM leírásban olvastam valahol, hogy lehetséges (esetleg) digitális bemenetnek beállítani az analog bemeneteket! Tudna valaki ebben segíteni? Természetesen tudom, hogy feszültségméréssel is működhet a dolog, de nem elegáns!
Köszönettel!
Bagi Zoltán
Arduino Uno R3 panelen fejlesztek. Elfogytak a digitális ki-bemeneteim. A BASCOM leírásban olvastam valahol, hogy lehetséges (esetleg) digitális bemenetnek beállítani az analog bemeneteket! Tudna valaki ebben segíteni? Természetesen tudom, hogy feszültségméréssel is működhet a dolog, de nem elegáns!
Köszönettel!
Bagi Zoltán
Re: Analóg bemenetek digitális használata lehetséges?
A lábak címzése:
A0...A5
pinMode(A0,Input);
És ugyanúgy kezeled tovább, mint digit be/kimenetet.
Vagy hivatkozhatsz rá még: A0=D14; .....A5=D19
A0...A5
pinMode(A0,Input);
És ugyanúgy kezeled tovább, mint digit be/kimenetet.
Vagy hivatkozhatsz rá még: A0=D14; .....A5=D19
-
bagizoltan
- Bitmanipulátor
- Hozzászólások: 128
- Csatlakozott: 2015. december 8. kedd, 19:52
Re: Analóg bemenetek digitális használata lehetséges?
Szia!
..ahh! Tehát simán lehetnek ezek a lábak is digitális ki és bemenetek? Annyira el vannak különítve a panelen, hogy azt hittem, ezek speciálisan csak analóg bemenetként használhatóak. Hát ez szuper! köszönöm!
ha a pinMode(A0,Input) egy digitális bemenetnek programozza, akkor hogyan lehet analóg bemenetre visszaállítani? Keresgettem az arduino.cc-én de erre nem találtam hivatkozást. Az derült ki számomra, hogy ha nem definiálom a bemenetet, akkor alapból analóg bemenet. Itt a mintapélda:
int analogPin = 3; // potentiometer wiper (middle terminal) connected to analog pin 3
// outside leads to ground and +5V
int val = 0; // variable to store the value read
void setup()
{
Serial.begin(9600); // setup serial
}
void loop()
{
val = analogRead(analogPin); // read the input pin
Serial.println(val); // debug value
}
Szóval azt írják óvatosan (várakozásokat közbeiktatva) szabad váltogatni futás közben akár kimenetről analóg bemenetre is, de arról nem írnak hogyan!
Bagi
..ahh! Tehát simán lehetnek ezek a lábak is digitális ki és bemenetek? Annyira el vannak különítve a panelen, hogy azt hittem, ezek speciálisan csak analóg bemenetként használhatóak. Hát ez szuper! köszönöm!
ha a pinMode(A0,Input) egy digitális bemenetnek programozza, akkor hogyan lehet analóg bemenetre visszaállítani? Keresgettem az arduino.cc-én de erre nem találtam hivatkozást. Az derült ki számomra, hogy ha nem definiálom a bemenetet, akkor alapból analóg bemenet. Itt a mintapélda:
int analogPin = 3; // potentiometer wiper (middle terminal) connected to analog pin 3
// outside leads to ground and +5V
int val = 0; // variable to store the value read
void setup()
{
Serial.begin(9600); // setup serial
}
void loop()
{
val = analogRead(analogPin); // read the input pin
Serial.println(val); // debug value
}
Szóval azt írják óvatosan (várakozásokat közbeiktatva) szabad váltogatni futás közben akár kimenetről analóg bemenetre is, de arról nem írnak hogyan!
Bagi
Re: Analóg bemenetek digitális használata lehetséges?
Bekapcsoáskor minden láb a funkcionális megfelelőjeként működik.
A digit ki/be azért kapcsolandó óvatosan, mert logikai L szintet logikai H-val könnyen összenyithatsz ...
A digit ki/be azért kapcsolandó óvatosan, mert logikai L szintet logikai H-val könnyen összenyithatsz ...
-
bagizoltan
- Bitmanipulátor
- Hozzászólások: 128
- Csatlakozott: 2015. december 8. kedd, 19:52
Re: Analóg bemenetek digitális használata lehetséges?
Szia!
Sajnos nem működik, valamit elszúrok! A következő módon inicializáltam a programban:
pinMode(14,INPUT);
pinMode(15,INPUT);
pinMode(16,INPUT);
pinMode(17,INPUT);
pinMode(18,INPUT);
pinMode(19,INPUT);
Sajnos csak két bemenet működik bemenetként, a többire a program nem reagál!
Mi lehet a baj?
Bagi
Sajnos nem működik, valamit elszúrok! A következő módon inicializáltam a programban:
pinMode(14,INPUT);
pinMode(15,INPUT);
pinMode(16,INPUT);
pinMode(17,INPUT);
pinMode(18,INPUT);
pinMode(19,INPUT);
Sajnos csak két bemenet működik bemenetként, a többire a program nem reagál!
Mi lehet a baj?
Bagi
Re: Analóg bemenetek digitális használata lehetséges?
Teljes programkód lehetne? Kiírsz vele? LEDet kezelsz?
Mi van a bemeneten?
Mi van a bemeneten?
-
bagizoltan
- Bitmanipulátor
- Hozzászólások: 128
- Csatlakozott: 2015. december 8. kedd, 19:52
Re: Analóg bemenetek digitális használata lehetséges?
Szia!
Maga a kód elég bonyolult, de csatoltam. A be és ki nevű tömbökben tárolom a kimenetek számát, és később a tömbök egyes index értékei szerinti tartalom alapján olvasom a bemeneteket, illetve előtte még a setup részben beállítom a bemeneteket és a kimeneteket!
Ebben a kódban a kimenet számával tudok hivatkozni! Egyébként a kód már csaknem teljesen működőképes, de a 0 és 1 indexű kapcsolók valamiért nem működnek egy ideje. Most pont azon dolgozok, hogy megfejtsem mi romlott el. Azt hiszem a sorosport használatakor kezdődött a probléma, pedig a D0,D1 (RX,TX) kivezetéseket már nem is használom. Nem értem mi történt!
Köszi!
Bagi
Maga a kód elég bonyolult, de csatoltam. A be és ki nevű tömbökben tárolom a kimenetek számát, és később a tömbök egyes index értékei szerinti tartalom alapján olvasom a bemeneteket, illetve előtte még a setup részben beállítom a bemeneteket és a kimeneteket!
Ebben a kódban a kimenet számával tudok hivatkozni! Egyébként a kód már csaknem teljesen működőképes, de a 0 és 1 indexű kapcsolók valamiért nem működnek egy ideje. Most pont azon dolgozok, hogy megfejtsem mi romlott el. Azt hiszem a sorosport használatakor kezdődött a probléma, pedig a D0,D1 (RX,TX) kivezetéseket már nem is használom. Nem értem mi történt!
Köszi!
Bagi
Nincs meg a kellő jogosultságod a hozzászóláshoz csatolt állományok megtekintéséhez.
Re: Analóg bemenetek digitális használata lehetséges?
52. sorban:
Kód: Egész kijelölése
//if (digitalRead(13)==LOW) {
if (LOW) { <<<<<<<<<<<<<<<<<<<<<<<<< De Mi a LOW?
...
102. sor
if (sw_on[i]==0 and digitalRead(be[i])==LOW and sw_prell[i]==0){sw_prell[i]=1;sw_time[i]=millis();} <<<<<< rossz
if (sw_on[i]==0 && digitalRead(be[i])==LOW && sw_prell[i]==0){sw_prell[i]=1;sw_time[i]=millis();} <<<<<<< jó
Re: Analóg bemenetek digitális használata lehetséges?
Átkozottul nehéz olvasni a programodat!
Ezt ilyen formában nem fogja végig silabizálni senki!

Ezt ilyen formában nem fogja végig silabizálni senki!
-
bagizoltan
- Bitmanipulátor
- Hozzászólások: 128
- Csatlakozott: 2015. december 8. kedd, 19:52
Re: Analóg bemenetek digitális használata lehetséges?
Szia!
Az "if(LOW)" azért van, mert fejlesztés közben ezzel szimulálom egy bemenet állapotát, ami nincs még bekötve. Itt éppen azt értem el, hogy az else ág legyen végrehajtva.
A kód valóban rendkívül bonyolult, lehet, hogy azért is mert nem igazán jó a formázás, de leginkább azért mert nem használhattam a delay-t, hiszen 6 kapcsoló állapotát kell folyamatosan felügyelni. Prellmentesítés, dupla kattintás, ledeken fényerő szabályozás stb. is a feladat része. Tulajdonképpen egy multitaszk programot írtam. Ez nem tud egyszerű lenni.
Magam is rájöttem, hogy ebben a kódban nem fog menni a hibakeresés, ezért csináltam külön kis tanuló programot, és abban keresem a megoldást!
Bagi
Az "if(LOW)" azért van, mert fejlesztés közben ezzel szimulálom egy bemenet állapotát, ami nincs még bekötve. Itt éppen azt értem el, hogy az else ág legyen végrehajtva.
A kód valóban rendkívül bonyolult, lehet, hogy azért is mert nem igazán jó a formázás, de leginkább azért mert nem használhattam a delay-t, hiszen 6 kapcsoló állapotát kell folyamatosan felügyelni. Prellmentesítés, dupla kattintás, ledeken fényerő szabályozás stb. is a feladat része. Tulajdonképpen egy multitaszk programot írtam. Ez nem tud egyszerű lenni.
Magam is rájöttem, hogy ebben a kódban nem fog menni a hibakeresés, ezért csináltam külön kis tanuló programot, és abban keresem a megoldást!
Bagi
-
bagizoltan
- Bitmanipulátor
- Hozzászólások: 128
- Csatlakozott: 2015. december 8. kedd, 19:52
Re: Analóg bemenetek digitális használata lehetséges?
Sziasztok!
Csak szeretnék visszajelezni, hogy működik. Nem tudom, hogy elsőre miért nem ment. Akár kivezetésszámmal, akár "A0.." módon is lehet hivatkozni a bemenetre. Valamit elbénáztam!
Bagi
Csak szeretnék visszajelezni, hogy működik. Nem tudom, hogy elsőre miért nem ment. Akár kivezetésszámmal, akár "A0.." módon is lehet hivatkozni a bemenetre. Valamit elbénáztam!
Bagi