Vizitator Lucian1122 Postat August 22, 2016 Partajează Postat August 22, 2016 Nu sunt chiar familiar cu componentele PC/laptop dar acelea nu sunt de tip SMD (si in general de dimensiuni foarte mici) ? Link spre comentariu
sesebe Postat August 22, 2016 Partajează Postat August 22, 2016 Da, aceeasi categorie nici_2010. Păcat ca nu conduci tu masini cu electronica făcută de tine dupa regulile tale, am fi scăpat forumul de astfel de comentatori.( prin doua metode). Link spre comentariu
nico_2010 Postat August 22, 2016 Partajează Postat August 22, 2016 @Lucian112: posteaza si softul (daca se poate). Este posibil sa fie vreo greseala neintentionata strecurata. OFF_TOPIC @sesebe: Este a doua oara cand scrii fara sa gandesti. Degeaba esti inconjurat de scule de valoare la serviciu daca esti incapabil sa citesti o foaie de catalog. Daca poti da un sfat corect fa-o, daca nu, abtine-te. Si se scrie nico_2010 Link spre comentariu
sesebe Postat August 22, 2016 Partajează Postat August 22, 2016 Bine ca tu stii.La fel bine ca dai si sfaturi foarte valoroase.Va fi permanent o diferenta între noi doi si ceea ce facem noi, in ce sens?!? las pe altii da decidă.Eu nu m- am legat niciodată de nici un post de al tau orientindu-ma dupa user/nume dar se pare ca tu ai o aversiune pe ceea ce postez eu si imi urmărești posturile. Iti recomand să-ti vezi de schemele tale super bazate si sa lasi pe altii în pace. Link spre comentariu
Vizitator Lucian1122 Postat August 22, 2016 Partajează Postat August 22, 2016 @nico_2010 #include <LiquidCrystal.h>LiquidCrystal lcd(7, 6, 5, 4, 3, 2);int Pin01=8;int Pin02=12;int pos=0;void setup(){ pinMode(10, OUTPUT); pinMode(11, OUTPUT); digitalWrite(10, HIGH); digitalWrite(11, HIGH); pinMode(Pin01,INPUT); pinMode(Pin02,INPUT); lcd.begin(16, 2); lcd.print("Start LCD");}void loop(){ if(digitalRead(Pin01)==LOW){ digitalWrite(10, HIGH); digitalWrite(11, LOW); lcd.clear(); lcd.setCursor(0,0); lcd.print("Spre dreapta"); delay(50); } if(digitalRead(Pin02)==LOW){ digitalWrite(10, LOW); digitalWrite(11, HIGH); lcd.clear(); lcd.setCursor(0,0); lcd.print("Spre stanga"); delay(50); } digitalWrite(10, LOW); digitalWrite(11, LOW);} Link spre comentariu
nico_2010 Postat August 22, 2016 Partajează Postat August 22, 2016 Ma ocup putin mai tarziu de problema de soft. Link spre comentariu
Vizitator andreyfitza Postat August 22, 2016 Partajează Postat August 22, 2016 (editat) Maxim 200 mA intre Vcc si GND, corect. II scoate fara probleme. Ca si chestie generala, in datasheet va fi intotdeauna valoarea maxima la care componenta va functiona normal. Ca o analogie, te poti uita in cartea autoturismului la viteza maxima constructiva si apoi il scoti pe autostrada si vezi ca poate mai mult doar ca o sa inceapa sa iti creasca temperatura motorului. Codul nu merge pentru ca la fiecare loop tu pui 0V in poarta ambelor mosfeturi. Mai poti adauga un buton de stop eventual sau poti opri motorul prin apasarea simultana a celor doua butoane. Pentru a face codul sa mearga, sterge ultimele doua instructiuni (Acelea unde setezi ambii pini pe LOW). Editat August 22, 2016 de andreyfitza Link spre comentariu
Mircea Postat August 22, 2016 Partajează Postat August 22, 2016 Lucian, diodele alea nu-s pentru "supracurenti". Oricum, sunt incluse in 99% din mosfetii actuali.In principiu, alege mosfeti cu Vds de 20-30V. Si cu Ciss cat mai mic, sute de pF.Se pot da detalii despre motor?@SSB, sunt ghiduri de calculat curentul necesar portii mosfetului ca sa comute suficient de repede.La 3-5V si cateva usec RT nu ai nevoie de prea mult curent. Asta ca sa punem capac polemicii daca se poate sau nu direct din iesirea uc. Link spre comentariu
kinderu56 Postat August 22, 2016 Partajează Postat August 22, 2016 in placile de baza modele mai vechi sunt capsule d2pak Link spre comentariu
Depanatoru Postat August 22, 2016 Partajează Postat August 22, 2016 (editat) Astfel de probleme daca esti electronist se testeaza f simplu setand din soft pinii corespunzatori on/off ca sa conduca permanent o ramura a puntii si se poate masura ce si cum , daca poate merge calumea motorul in principiu ... nu era mare filozofie , asa ne scarpinam in cap daca o fi de la soft sau (si ) hard problema . Multa poveste si presupuneri fara sa se cunoasca exact cauza , ca de obicei . Editat August 22, 2016 de Depanatoru Link spre comentariu
nico_2010 Postat August 22, 2016 Partajează Postat August 22, 2016 Codul de mai jos nu este perfect, dar pentru inceput poate fi verificat: #include <LiquidCrystal.h>LiquidCrystal lcd(7, 6, 5, 4, 3, 2);int Pin01 = 8;int Pin02 = 12;int pos = 0;int PWM_pin1 = 9;int PWM_pin2 = 10;int pulse_speed_left = 200;int pulse_speed_right = 50;int stop_pulse = 0;;void invertAnalogWrite(int pin, int value){ analogWrite(pin, value); TCCR1A = TCCR1A & ~B00110000; //switch off output B TCCR1A |= B00110000; //switch on the B output with inverted output}void setup() { pinMode(PWM_pin1, OUTPUT); pinMode(PWM_pin2, OUTPUT); digitalWrite(PWM_pin1, HIGH); digitalWrite(PWM_pin2, HIGH); pinMode(Pin01, INPUT_PULLUP); pinMode(Pin02, INPUT_PULLUP); lcd.begin(16, 2); lcd.print("Start LCD");}void loop() { if (digitalRead(Pin01) == LOW) { digitalWrite(PWM_pin1, HIGH); digitalWrite(PWM_pin2, HIGH); TCCR1B = 0; delay(500); TCCR1B = 0x03; analogWrite(PWM_pin1, pulse_speed_right); invertAnalogWrite(PWM_pin2, pulse_speed_right); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Spre dreapta"); delay(50); } if (digitalRead(Pin02) == LOW) { digitalWrite(PWM_pin1, HIGH); digitalWrite(PWM_pin2, HIGH); TCCR1B = 0; delay(500); TCCR1B = 0x03; analogWrite(PWM_pin1, pulse_speed_left); invertAnalogWrite(PWM_pin2, pulse_speed_left); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Spre stanga"); delay(50); } } Si schema de principiu (fara floricele si fara pretentia de a fi aplicabila suta la suta). Valorile au fost trecute exclusiv in scop de testare a softului si vor fi adaptate functie de componentele existente. forum_test.BMP Link spre comentariu
Vizitator andreyfitza Postat August 23, 2016 Partajează Postat August 23, 2016 Mi se pare ok codul lui nico_2010 cu o singura exceptie: In momentul in care verific unul dintre butoane daca este low, l-as verifica pe celalalt daca este high. Asa evit eventualele neplaceri si poate defectiuni in cazul apasarii simultane a butoanelor. PS. Nu m-as fi complicat cu timmerii. Link spre comentariu
nico_2010 Postat August 23, 2016 Partajează Postat August 23, 2016 Trebuie sa te complici cu timerul, altfel apar tot soiul de minuni. Oricum, asa cum am mai spus, este o versiune didactica si in niciun caz perfecta. Sunt curios daca userul Lucian112 a verificat si schema si codul si care au fost rezultatele. Link spre comentariu
Vizitator andreyfitza Postat August 23, 2016 Partajează Postat August 23, 2016 Eu nu am intalnit pana acum probleme legate de timmerii pentru PWM. Din cate stiu, exista deja un timmer definit by default pentru PWM. Link spre comentariu
Vizitator Lucian1122 Postat August 23, 2016 Partajează Postat August 23, 2016 (editat) @andrefitza La final puneam pinii in 0V pentru ca motorul sa nu se mai invarta daca nu am nici un buton apasat. In caz contrar acesta continua sa functioneze pana cand apasam celalalt buton care ii comanda sensul opus si tot asa. @thunderer Motorul de test functioneaza la 6V, totusi l-am conectat la placa la 3,3V sa vad daca totusi functioneaza (desi stiu ca nu este recomandata conectarea directa) si functiona corect. @nico-2010 Iti multumesc ca ti-ai facut timp sa ma ajuti cu codul. Acum il tot citeam si incercam sa-l inteleg. Eu foloseam TCCR1B pentru a modifica frecventa pinului dorit. In orice caz tot nu imi functioneaza, citeste doar butoanele si afiseaza pe ecran spre dreapta/stanga dar motorul nu se invarte. Cred ca pana la urma trebuie sa il depanez din pin in pin cu un multimetru si sa vad ce se intampla. Edit : daca eu tineam un sens cu valoare pozitiva si altul pe 0, tu ai pus unul cu valoare pozitiva si altul cu valoare negativa ? Editat August 23, 2016 de Lucian1122 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