gabiz_ro Postat Octombrie 5, 2016 Partajează Postat Octombrie 5, 2016 Salutare. Vreau sa construiesc ceva si cum la partea de microcontrolere nu prea am experienta decat de sters,programat vreo unul am nevoie de ceva ajutor. Este vorba de un obiectiv de aparat foto,compus inafara de optica din doua micromoatoare pas cu pas,bipolare cred,intrucat au doar patru pini,doi senzori optici,un fel de optocuplor cu fanta,pentru limita de cursa si un fel de diafragma, tot electronic este comandata si asta. Ca si elemente de control ar fi butoane sau mai bine cred encoder rotativ cu push button.Functia de push button ar merge pentru modificarea vitezei,mai mare sau mai mica. Pentru comanda motoarelor am optat pentru DRV8834 Pentru drivere cred ca pot folosi acelasi semnal de STEP pentru ambele,daca nu atunci separat. Mai adaug un semnal la M0 sau M1 pentru un control mai fin,asta inseamna ca am nevoie de 7 sau 8 pini iesiri pentru drivere. Pentru encodere,aici nu e vreo diferenta intre butoane si encoder decat in soft,3 pini de fiecare deci 6 pini intrari comanda. Inca doi pini intrari de la optocuploare. Ar mai trebui doua intrari pentru butoane control diafragma si o iesire pentru ea. Este vreun avantaj sau dezavantaj daca folosesc oscilatorul intern sau quart extern? Stiu ca la programare gresita la fusebits nu il mai poti reprograma decat cu semnal de oscilatie extern,la fel se intampla si daca se foloseste quart extern? Versiunile de Atmega8 sunt PDIP As incerca cam asa. Portul D iesiri pentru drivere. Portul C comanda de la encodere Portul B optocuploare si ce mai este pentru diafragma,doi pini,doua butoane,un pin o iesire. Este bine asa sau sunt ceva limitari si nu-l pot folosi in configuratia asta. Daca folosesc si portul B pot sa-l mai programez in circuit? Apoi vine problema softului,insa astept sfaturile voastre sau confirmarea ca e buna sau nu configuratia de mai sus,sa fac pe placa de test versiunea de baza si apoi sa-mi prin urechile prin soft. Daca mai stiti pe undeva proiecte similare,eu nu prea am gasit,sunt bune de inspiratie. Multumesc. Link spre comentariu
mars01 Postat Octombrie 6, 2016 Partajează Postat Octombrie 6, 2016 Salut, Poti folosi portul B si pentru altceva decat programarea uC-ului cu conditia sa: - ai grija sa nu ai un semnal repetitiv pe pinul PB5 (SCK) cand programezi uC-ul - sa inserezi rezistori pe toti pinii de programare de cca 4.7K. Headerul de programare va fi conectat direct pe pinii controller-ului iar montajul tau (opto, butoane etc) sunt conectate prin rezistorii mentionati, la acei pini. In cazul acestui uC, iti pui problema daca ai ales pinii corecti doar daca intentionezi sa folosesti unele din functiile alternative care se gasesc pe pini. Dar cum tu ai sa folosesti in mare parte functia de pin digital nu cred ca trebuie sa iti faci probleme. Pe portul D ai intreruperile externe in cazul in care te vei folosi de acestea pentru citirea de encoder(e). Tot ce ai nevoie sa stii gasesti in datasheet. Link spre comentariu
gabiz_ro Postat Octombrie 6, 2016 Autor Partajează Postat Octombrie 6, 2016 (editat) Multumesc de raspuns. Intre timp din ce am mai citit,e vorba de ceva intreruperi,sa le spun asa in romana, Atmega8 are doar doua,poate ar fi suficiente,si 3 timere,de primul adica 0,am inteles ca nu e bine sa te legi de el. Oricum imi pare imbarligat,un port cu 7 biti unul cu 8 biti. Mai am de studiat si citit,poate in final inteleg si mai invat ceva. Sau poate folosesc un atmega si un driver, Nu prea s-a inghesuit lumea sa-mi spuna daca e bine sau rau cum am gandit eu in prima faza. Momentan,sunt in dubii,alt microcontroler,sa doua pentru cele doua motoare. Maine,daca am timp,incep experimentele. Editat Octombrie 6, 2016 de gabiz_ro Link spre comentariu
nico_2010 Postat Octombrie 7, 2016 Partajează Postat Octombrie 7, 2016 Un prim sfat: poate ar trebui sa folosesti un ATMega88, caz in care toate porturile sunt prevazute cu funtia de intrerupere la schimbarea starii (PCInt). Pentru encodere poti folosi cele doua intreruperi externe (INT0 - PD2 - si INT1 - PD3 -) si doi pini adiacenti (ex.PD0 si PD1) Pentru motor poti folosi PD4...PD7, iar pentru comanda driver-ului PB0 ... PB2. Pentru butoane, diafragma si alte cele PC0 ...PC5 si asta ca sa lasi MOSI si SCLK libere pentru programare. Link spre comentariu
gabiz_ro Postat Octombrie 7, 2016 Autor Partajează Postat Octombrie 7, 2016 O sa trec pe Atmega88 atunci. Multumesc. Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum