Guest Posted June 23, 2022 Share Posted June 23, 2022 Se dă: - 1 x placă Arduino la care mai sunt libere două porturi. - 3 x LED-uri. - 3 x resistente. Se cere: Sa se conceapă schema si softul care să permită aprinderea celor trei LED-uri pe rând utilizând cele două porturi libere. Dupa initializare uC, un singur LED va fi alimentat la un moment dat. Fiecare LED se aprinde timp de o secundă, se stinge si după o secundă se aprinde următorul. Link to comment
Mircea Posted June 23, 2022 Share Posted June 23, 2022 Una dintre iesiri este PWM? Se accepta? Link to comment
Guest Posted June 23, 2022 Share Posted June 23, 2022 (edited) Nu. Prin LED stins se intelege zero curent prin LED. Aprins = curent nominal (conform datasheet al LED-ului) Edited June 23, 2022 by Guest Link to comment
Guest Posted June 23, 2022 Share Posted June 23, 2022 (edited) Acum 4 minute, yo8tot a spus: Un fleac, se poate si numai cu 2 rezistente Orice "se poate". Intrebarea este: "Cum ?" Schema + soft. (softul poate să fie ceva generic. ideea contează) Edited June 23, 2022 by Guest Link to comment
merck Posted June 23, 2022 Share Posted June 23, 2022 Acum 20 minute, Liviu.Mihaiu a spus: Schema Nu stiu daca am inteles bine ce ai cerut (sunt cam obosit), dar particip cu cat ma duce capul acum (am realizat ca nici nu am pus rezitorii ): Cand ai portul arduino in HIGH se aprinde D2 si este stins D1 si cand ai port arduino in LOW se aprinde D1 si D2 este stins. Acum 2 minute, yo8tot a spus: A doua merge mai bine daca sunt leduri albastre. Prima este de electronist (cum am propus si eu), dar a doua este inginereasca! Asta a doua trebuie sa fie rezolvarea. De altfel se pupa si cu enuntul: doua porturi, 3 leduri. Link to comment
Guest Posted June 23, 2022 Share Posted June 23, 2022 (edited) @yo8tot Problema cere schema si soft. Hard si Soft care sa respecte conditia "un singur LED alimentat la un moment dat". Intrebare: Daca pun R4 la GND , D4 si D5 nu sunt "alimentate" ? @merck 3 LED-uri si 2 porturi disponibile Edited June 23, 2022 by Guest Link to comment
cimitavita Posted June 23, 2022 Share Posted June 23, 2022 . loop_prg: call led1_on call pauza_1sec call led2_on call pauza_1sec call led3_on call pauza_1sec rjmp loop_prg led1_on: cbi PORT1,bit0 cbi PORT1,bit1 ret ; led 1 aprins. led 2 si 3 stins led2_on: sbi PORT1,bit0 cbi PORT1,bit1 ret ; led 2 aprins. led 1 si 3 stins led3_on: sbi PORT1,bit0 sbi PORT1,bit1 ret ; led 3 aprins. led 1 si 2 stins pauza_1sec: ; aici fiecare face pauza cum vrea, si in functie de cristalul folosit ret decât cu atâtea improvizaţii, mai bine se pune o jumătate dintr-un 74139 şi se pot folosi 4 leduri. Sau 3 leduri, dar pot fi stinse toate. Nu e prea corect două porturi deoarece un port are 8, 16, 32... s.a.m.d. biţi. Link to comment
merck Posted June 23, 2022 Share Posted June 23, 2022 (edited) @yo8tot are a doua solutie exact cu ce ai cerut tu (nu a pus el rezistorii in serie cu ledurile, dar asta se intelege): Ai: High High - se aprinde ledul de jos High Low - se aprinde ledul de la mijloc Low Low - se aprinde ledul de sus Edited June 23, 2022 by merck Link to comment
merck Posted June 23, 2022 Share Posted June 23, 2022 Acum 1 minut, cimitavita a spus: .decât cu atâtea improvizaţii, Cred ca este o problema pentru elevi, nu este un proiect. Tu ai pus schema corecta! Link to comment
merck Posted June 23, 2022 Share Posted June 23, 2022 (edited) Acum 1 minut, yo8tot a spus: Pai nu e nevoie sa le pui in serie cu ledurile Bre, ai dreptate, e mai smechera solutia ta! P.S. Nu stiu la initializare daca ai pinii in LOW daca ledurile nu fac scandal (3 leduri inseriate la Vcc). Edited June 23, 2022 by merck Link to comment
Guest Posted June 23, 2022 Share Posted June 23, 2022 (edited) led2_on: sbi PORT1,bit0 cbi PORT1,bit1 ret ; @cimitavita Cand faci sbi PORT1, bit0 aprinzi ambele leduri LED2 si LED3 (pentru putin timp, ce-i drept, pentru ca urmeaza cbi PORT1,bit1) Dar nu permite enuntul problemei ca mai mult de un LED sa fie aprins (am specificat "alimentat"). Edited June 23, 2022 by Guest Link to comment
merck Posted June 23, 2022 Share Posted June 23, 2022 (edited) @yo8tot da, este o galma cand ai High + Low ca ledul de sus poate sa lumineze odata cu cel de la mijloc. Edited June 23, 2022 by merck Link to comment
cimitavita Posted June 23, 2022 Share Posted June 23, 2022 o soluţie ar fi să trec biţii 0 şi 1 pe rând, pe intrare şi apoi pe ieşire dar iese ceva destul de stufos... altă soluţie mai simplă ar fi să scriu dintr-o dată toţi biţii din PORT1: led1_on: ldi r16,0b_xxxxxx00 rjmp iesire led2_on: ldi r16,0b_xxxxxx01 rjmp iesire led3_on: ldi r16,0b_xxxxxx11 rjmp iesire iesire: out PORT1,r16 ret Link to comment
merck Posted June 23, 2022 Share Posted June 23, 2022 Acum 29 minute, Liviu.Mihaiu a spus: Dar nu permite enuntul problemei ca mai mult de un LED sa fie aprins (am specificat "alimentat"). Pana la urma este o problema sau este un proiect? Link to comment
nico_2010 Posted June 24, 2022 Share Posted June 24, 2022 @merckSubiectul s-a discutat aici: https://electronics.stackexchange.com/questions/106090/how-to-control-three-leds-with-two-uc-pins-using-just-passive-components acum peste 8 ani. Initiatorul a omis sa specifice culoarea LED-urilor. " Conditia asta: "Prin LED stins se intelege zero curent prin LED" nu poate fi indeplinita cu un microcontroller. De ce? Poate ne raspunde initiatorul topicului. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now