sesebe Postat Octombrie 2, 2019 Partajează Postat Octombrie 2, 2019 (editat) Este o mica mare diferenta intre programarea unui microcontroler si programarea "generica" a unui PC. Sa dau un mic exemplu: Acum mai multi ani a trebuit sa repar una din placile de dezvoltare donate de firma la care lucrez unei universitati. Avea µControlerul ars. Dupa citiva ani am stat de vorba cu unul dintre studentii care lucrase pe placa care se arsese si am aflat cum s-a defectat. Studentii, probabil sub supravegherea unui cadru didactic dar nu pot garanta asta, au scris un programel care facea sa se invirta un mic motoras stepper. Toate bune si frumoase. Motorasul s-a invirtit citeva secunde/minute si putea fi controlat asa cum se dorea. Totusi dece s-a ars µControlerul? Motorasul, care ca dimensiuni era cam cit un motoras de servo lentile de la CD-player, era conectat DIRECT pe porturile µControlerului fara nici un buffer intermediar. Cred ca nu mai trebuie sa spun nimic altceva, este un exemplu clar de rebut. PS: Persoana respectiva a inteles dece s-a ars placa/µControlerul abia dupa discutia cu mine avuta la citiva ani dupa terminarea facultatii. No comment! Editat Octombrie 2, 2019 de sesebe Link spre comentariu
informer Postat Octombrie 2, 2019 Partajează Postat Octombrie 2, 2019 Acum 15 minute, sesebe a spus: Este o mica mare diferenta intre programarea unui microcontroler si programarea "generica" a unui PC. Corect ce zici tu dar este o "mica mare" diferenta si intre proiectarea unui sistem cu uC respectiv folosirea Arduino + module special concepute anti... eroare, ca sa nu zic mai urat. Daca te uiti peste tutorialele alea ale caror link-uri le-am pus mai sus, si care sunt SUFICIENTE pt. a realiza ceea ce se cerea in topic din pct. de vedere HW, o sa constati ca inclusiv un copil din clasele 1-4 ar putea realiza "electronica" aia, fara probleme deosebite... nu-i cu nimic mai dificil decat un Lego... Link spre comentariu
sesebe Postat Octombrie 2, 2019 Partajează Postat Octombrie 2, 2019 (editat) Clasele 1-4? Esti sigur? Retine ca este vorba de lucru cu tensiuni mari unde orice mica "scapare" se lasa cel putin cu fum. In exemplu REAL de mai sus era vorba de studenti indrumati de un cadru didactic si tot au dat-o-n bara. Nu domnu', cind scrii SW generic pt PC intradevar nu trebuie sa stii ce-i aia o rezistenta sau un condesator (si multi chiar nu stiu) DAR cind incepi sa scrii SW pt embeded TREBUIE sa ai macar o vaga ideie si de electronica. Nu merge altfel! Tot asa, orice electronist trebuie sa fie instare sa faca lipituri de calitate. Am pus fundal pe computerul de la servici o poza cu fiica mea cind facea lipituri cu statia de lipit si inca nu era la scoala. Am pus poza ca imbold pt colegi si colege sa invete sa faca corect o lipitura. Baiatul care-i mai mare are deja mai multe montaje realizate si functionale. Editat Octombrie 2, 2019 de sesebe Link spre comentariu
informer Postat Octombrie 2, 2019 Partajează Postat Octombrie 2, 2019 (editat) @sesebe, daca doresti neaparat sa ne contrazicem putem face asta un timp destul de lung numa` ca nu vad cine are de castigat din asta?!? Tu faci o confuzie intre proiectarea cu uC-uri (unde intr-adevar ai nevoie de cunostinte) si conectarea/programarea unor "jucarii" facute special pt. oameni cu cunostinte reduse sau chiar zero despre electronica. NU vorbesc evident depre circuitele in care se intercaleaza contactele releelor, banuiesc ca cine se apuca de asa ceva stie ce face. Na in orice caz, cum spunea un coleg mai devreme, cred ca initiatorul a primit suficiente informatii cat sa aleaga, n-are rost sa batem noi apa-n piua degeaba. Hai noroc! Editat Octombrie 2, 2019 de informer Link spre comentariu
one Postat Octombrie 2, 2019 Partajează Postat Octombrie 2, 2019 La 30.09.2019 la 23:51, sesebe a spus: As vrea sa vad automatizare cu uControler ce functioneaza minim 40 de ani............. Apropo, cum repari o automatizare, la o chestie "excentrica" adica la care nu stii cum merge, realizata cu microcontroler si la care s-a ars microcontrolerul? De unde iei ucontroler programat sau programul pt el daca firma producatoare nu mai exista de 10 ani? Pai tendinta este exact de a evita repararea. Oreparatie poate fi executata profesional dar poate fi si facuta prost, unicul mod prin care se poate garanta conformitatea este o reparatie certificata sau inlocuirea cu un produs certificat. Exista aplicatii fara risc dar exista aplicatii industriale care dupa 20ani nu mai respecta normele de siguranta chiar daca inca nu s-au defectat. Cred ca sunt destule aplicatii de vreo 20 ani cu microcontrollere din seria 8051 care functioneaza. Nu au mai mult pentru ca microcontrollerele sunt raspandite de vreo 25-30 ani doar... Link spre comentariu
nico_2010 Postat Octombrie 2, 2019 Partajează Postat Octombrie 2, 2019 (editat) Acum 3 ore, sesebe a spus: Clasele 1-4? Esti sigur? Retine ca este vorba de lucru cu tensiuni mari unde orice mica "scapare" se lasa cel putin cu fum. In exemplul REAL de mai sus era vorba de studenti indrumati de un cadru didactic si tot au dat-o-n bara. Nu domnu', cind scrii SW generic pt PC intradevar nu trebuie sa stii ce-i aia o rezistenta sau un condensator (si multi chiar nu stiu) DAR cind incepi sa scrii SW pt embeded TREBUIE sa ai macar o vaga ideie si de electronica. Nu merge altfel! Tot asa, orice electronist trebuie sa fie in stare sa faca lipituri de calitate. Nu ma pot abtine, insa trebuie sa fac un mic comentariu, chiar daca este off-topic: maestre, tu in care categorie te incadrezi? Ca nu vrei sa recunosti in ruptul capului faptul ca optocuploarele sunt compatibile cu TTL-urile (vorbesc de alea clasice, model CDB)! Abtine-te sa dai altora sfaturi. BTW: cand scrii "SW pt embeded" si daca doar asta trebuie sa faci atunci ai logica de functionare a sistemului si specificatiile tehnice ale interfetelor de control si comanda. Nu trebuie sa stii sa lipesti o rezistenta sau o naveta cosmica, insa este obligatoriu sa cunosti valorile de tensiune, curent, intensitate luminoasa, de camp magnetic s.a.m.d. cu care montajul /placa cu pricina va avea de-a face. Asta este treaba celor care proiecteaza HW. Si acum putin la subiect: o solutie simpla este cea cu Arduino, despre care sa-a vorbit, si care, folosita cu ULN20... poate comanda lesne relee. Atentie mare ar trebui acordata modului in care se face alimentarea intregului montaj (luandu-se in considerare si varii masuri de protectie la supra tensiune, paraziti de natura elecrtomagnetica) si conexiunile cu placa cu relee (atunci cand sunt pe alt modul plasat la distanta fata de modulul cu uC). Cealalta solutie. nu la fel de simpla, implica circuite logice CMOS, diagrama Carnaugh, nivele logice si mai multe componente de plantat si masuri mai putin stricte de deparazitare a sursei de alimentare. Restul sunt mici corecturi de ... scriere! Editat Octombrie 2, 2019 de nico_2010 Link spre comentariu
validae Postat Octombrie 2, 2019 Partajează Postat Octombrie 2, 2019 Cred că s-a discutat destul despre chestiunea alegerii tipului de automatizare (cu controller sau analogică), să lăsăm iniţiatorul să ne spună ce a ales şi cum a rezolvat problema. Link spre comentariu
Vizitator Postat Octombrie 2, 2019 Partajează Postat Octombrie 2, 2019 cine ma ajuta cu un program simplu, sau o schema fara uC, vedem ce iese mai usor, ca vad ca sunteti mai priceputi ca mine. vreau sa comand ciclic 2 relee in secventa 00->01->10, cate o ora in fiecare secventa, dar cand apas un buton fara retinere sa sara imediat la secventa urmatoare unde sa stea o ora sau pana la o noua apasare. zic doua sa fie mai simplu. Link spre comentariu
nico_2010 Postat Octombrie 2, 2019 Partajează Postat Octombrie 2, 2019 Acum 43 minute, cocochannel a spus: cine ma ajuta cu un program simplu, sau o schema fara uC, vedem ce iese mai usor, ca vad ca sunteti mai priceputi ca mine. vreau sa comand ciclic 2 relee in secventa 00->01->10, cate o ora in fiecare secventa, dar cand apas un buton fara retinere sa sara imediat la secventa urmatoare unde sa stea o ora sau pana la o noua apasare. zic doua sa fie mai simplu. Adicatelea, atunci cand apesi butonul aplicatia "sa uite" ca tre sa stea o ora in starea in care se afla si sa incepa un ciclu nou de o ora? Altfel repeta ciclic secventa indicata de tine? Link spre comentariu
Vizitator Postat Octombrie 2, 2019 Partajează Postat Octombrie 2, 2019 Da, sa zicem ca pleaca cu 0-0 ( unde e notata simbolic starea K1 si K2) si dupa x minute vreau sa-l duc in starea 1-0, apas de doua ori butonul, trece in 1-0 si ramane o ora, apoi trece in 0-0 unde sta iar 0 ora si tot asa mai departe. x minute , adica mai putin de 1 ora, se intelege. Link spre comentariu
informer Postat Octombrie 2, 2019 Partajează Postat Octombrie 2, 2019 (editat) Acum 4 ore, cocochannel a spus: Da, sa zicem ca pleaca cu 0-0 ( unde e notata simbolic starea K1 si K2) si dupa x minute vreau sa-l duc in starea 1-0, apas de doua ori butonul, trece in 1-0 si ramane o ora, apoi trece in 0-0 unde sta iar 0 ora si tot asa mai departe. x minute , adica mai putin de 1 ora, se intelege. Fac doua presupuneri, prima ar fi ca vrei sa faci treaba cu un Arduino (ca-i mai simplu de programat fara dotari suplimentare) si a doua ca te pricepi putin la asta dar nu suficient... Ai putea scrie un cod de genul celui de mai jos. ATENTIE, nu-i testat, posibil sa fi gresit ceva avand in vedere ca-s la o bere ... in plus presupune niste valori dependente de modul in care/unde legi butonul/releele la uC, daca releele sunt comandate cu 0V sau 5V etc. ... ii un fel de pseudo-code, ca sa vezi ideea. #define BTN 2 #define RL1 3 #define RL2 4 #define CLOSE 0 #define OFF 0 #define ON 1 unsigned short state = 0; void setup() { pinMode(BTN, INPUT_PULLUP); pinMode(RL1, OUTPUT); pinMode(RL2, OUTPUT); digitalWrite(RL1, OFF); digitalWrite(RL2, OFF); } void loop() { unsigned int i = 0; while(i <= 36000) { // x100ms delay(100); i++; if(digitalRead(BTN) == CLOSE) { delay(5); if(digitalRead(BTN) == CLOSE) break; } } while(digitalRead(BTN) == CLOSE) {} state++; if(state == 3) state = 0; if(state == 0) { digitalWrite(RL1, OFF); digitalWrite(RL2, OFF); } else if(state == 1) { digitalWrite(RL1, ON); digitalWrite(RL2, OFF); } else if(state == 2) { digitalWrite(RL1, OFF); digitalWrite(RL2, ON); } } Editat Octombrie 2, 2019 de informer Link spre comentariu
Vizitator Postat Octombrie 2, 2019 Partajează Postat Octombrie 2, 2019 multam , o sa incerc. Eu vedeam ceva cu intreruperi pentru buton si timer pentru timp, dar asa pare super simplu. cu logice imi ieseau vreo 4 integrate ca sa mearga bine. Link spre comentariu
informer Postat Octombrie 2, 2019 Partajează Postat Octombrie 2, 2019 Sigur ca varianta cu intreruperi e mai eleganta, nu mai ai o "intarziere" de pana la 100ms cand apesi butonul... eventual poti face i de tip unsigned long, delay-ul de 10ms si mergi pana la 360000... s.a.m.d.... dar nah... cheers! Link spre comentariu
Ticu Postat Octombrie 2, 2019 Partajează Postat Octombrie 2, 2019 (editat) Scuze de intarziere, am mai facut o varianta mai simpla la cererea initiala a lui @paulb dupa ce am procurat un 4541. Din anii 80 nu aveam niciunul, ca nu s-a "asimilat" la Microelectonica... Editat Octombrie 2, 2019 de Ticu 1 Link spre comentariu
nico_2010 Postat Octombrie 4, 2019 Partajează Postat Octombrie 4, 2019 (editat) La 02.10.2019 la 15:57, cocochannel a spus: cine ma ajuta cu un program simplu, sau o schema fara uC, vedem ce iese mai usor, ca vad ca sunteti mai priceputi ca mine. vreau sa comand ciclic 2 relee in secventa 00->01->10, cate o ora in fiecare secventa, dar cand apas un buton fara retinere sa sara imediat la secventa urmatoare unde sa stea o ora sau pana la o noua apasare. zic doua sa fie mai simplu. Ai schema de principiu, la care pui in loc de ansamblul R(330ohm)- LED o rezistenta de 10k, un tranzistor NPN (ex.BC547), un releu adecvat aplicatiei tale si o dioda de protectie pe bobina releului si obtii aplicatia, care functioneaza exact asa cum ai dorit. Si proiectul complet, in arhiva. Bafta! aspersor1.zip Editat Octombrie 4, 2019 de nico_2010 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