Sari la conținut
ELFORUM - Forumul electronistilor

Lucreaza cineva cu FLOWCODE ?


bercioiu

Postări Recomandate

Cred ca la o statie meteo o sa ajunga senzorul acesta. Altitudinea nu prea ma intereseaza, mai mult viteza vantului si directia acestuia. Dar in functie de presiunea atmosferica poti estima daca o sa vina ceva vant sau nu. Eu am cumparat acest senzor pentru a face un variometru, lucru foarte util in zborul cu deltaplanul. Dupa cum masoara senzorul nu prea se preteaza ca are zgomot mult si se modifica valoarea fara sa ating montajul. Cum ar fi sa imi indice ca iau altitudine cand de fapt eu pierd? Pentru o statie meteo montata pe acoperisul casei este ok.

Link spre comentariu

Am cumprat deja un ms5611 si un arduino nano pentru acest proiect. Nu am mai pus mana pe un arduino pana acuma dar sper sa m descurc, avand in vedere ca am softu gata facut plus schema. Sa il fac mai intai asa cum este si cu timpul dupa ce mai invat ceva programare o sa ii atasez un lcd sa vad si altitudinea. Multam de postare.

Editat de mikella
Link spre comentariu

Poti programa si Arduino in Flowcode. In FC6 intri in sectiunea AVR si pe urma in lista, in cazul tau, selectezi Arduino Nano.

Nivelul de abstractizare este mare asa ca experienta ar trebui sa fie similara cu cea cand programezi uC-uri PIC.

 

Pt programare fisier .HEX in Arduino te poti folosi de Xloader.

Editat de mars01
Link spre comentariu
  • 3 săptămâni mai târziu...

Ti-am aranjat putin flowchartul.Nu stiu stiu exact ce ai incercat sa faci,nu vad la ce port este conectat motorul.

Low voltage program era activat si cred ca nu iti mergea oricum.

 

Da mai multe detalii despre cum ai vrea sa functioneze.Am redus delay de 40sec la 2sec ca sa pot urmari.

 

Asa cum am invatat si eu de la altii e indicat sa eviti functia delay,poti folosi timerul.

Ar fi bine de activat si watchdog ,e riscant sa ramana blocat picul si sa bage "in soba" la nesfarsit. temporizator peleti.rar

Link spre comentariu

Treaba cu timerul ma depaseste foarte foarte mult.. Este excelenta chestia cu activarea watch dog dar am delayurile elea (doar la ele ma pricep) si de aia nu il pot activa

Motorasul merge la oricare din cele 4 leduri.

Am facut treaba asta ca sa verific daca nu cumva tranzistorii erau dusi.. Dar nu erau ei cauza. Dar cand pornesc 2 sau 3 butoane concomitent nu se mai aprind ledurile.. La mine ar fi trebuit sa se cumuleze timpii ca sa pot jongla de la 0,3 la 5 sec. Multumesc mult oricum. Daca merge asa este ok.

Editat de aureliu67
Link spre comentariu

Iti sunt suficiente 2 butoane din care setezi timpul.De preferat comanda sa se faca prin punere la masa nu la plus ca sa nu ia comenzi aiurea.

Avand in vedere ca ai multi pini la dispozitie se pot monta leduri ca sa si vezi treptele.

Care trebuie sa fie logica pana la urma?In momentul alimentarii pornste motorul atata timp cat e setat apoi face pauza 40sec si tot asa?

Link spre comentariu
Pentru aureliu67
Nu are cum sa "te depaseasca" un timer...
Un timer este o intrerupere TMR (TMR0, TMR1, TMR2...). Ce este o intrerupere? Pai, o intrerupere este o "bucata" de soft care se executa singura in momentul in care sunt indeplinite anumite conditii pe care le stabilesti tu.
Asadar, daca s-au indeplinit conditiile declansarii intreruperii, programul intrerupe firul softului principal (indiferent unde se afla), executa "bucata" de soft (intreruperea), dupa care reia softul principal in continuare, exact din punctul unde s-a oprit sa rezolve intreruperea.
Sa le luam pe rand:
1) Conditia declansarii intreruperii. La timer, conditia este insasi frecventa pe care o stabilesti tu pentru a executa intreruperea.
2) "Bucata de soft". Bucata de soft este de fapt un macro pe care il creezi tu, sa zicem macroul TIMER.
Acum, daca unim cele doua puncte, avem asa, la o frecventa a intreruperii de, sa zicem 50 Hz, programul tau va "trece" prin macroul TIMER de 50 ori intr-o secunda.
Daca in macroul TIMER incrementezi o variabila cu 1 (unu), spre exemplu variabila "count", vei avea count=count+1, in momentul in care variabila count are valoarea 50, atunci stii sigur ca a trecut fix o secunda.
Ce zici? Este complicat?
In Flowcode faci asa:
1) La inceputul programului declari o intrerupere punand o iconita INT (ai in meniul din stanga paginii "insert an interrupt").
2) Dublu click pe iconita plasata (sau click dreapta>properties...)
3) Enable iterrupt trebuie sa fie bifat
4) In campul Interrupt on, selectezi TMR2
5) Properties...
- Interrupt Name: TMR2
- Prescaler Rate: 1:16
- Postscaler Rate: 1:15
- Rollover Value: 250
OK la interrupt properties
6) In campul macro trebuie sa alegi macroul executat de intrerupere. Daca nu ai creeat macroul, intai creezi macroul, dupa care il alegi din acest camp.
OK
Dupa aceste setari trebuie sa ai in program un "ceas" cu frecventa de 50 Hz, care la fiecare "ticaire" (0.02 secunde) trece prin macroul TIMER.
Frecventa intreruperii se seteaza in functie de frecventa picului.
Pentru setari eu folosesc un calculator online:
Daca nu ai inteles, iti pun un exemplu sa vezi cum sta treaba.
Spor!
Editat de bercioiu
Link spre comentariu

temporizator peleti.rar

 

 

Am facut si eu un mic exemplu peentru ce vrei tu.

Bercioiu a folosit tmr2 ca sa nu dea cu virgule la calculul pentru secunda.

 

Am lasat si cateva commenturi,sper sa-ti fi de ajutor.

 

 

Apropo cum se scapa de delay-ul de 300ms ?Caci daca nu e pus e clar ce se intapla cu variabila

Link spre comentariu

Multumesc mult tuturor. pentru prima varianta nu am incercat dar in varianta exemplu nu prea am inteles in ce interval porneste motorul.am inteles ca cu ajutorul butoanelor marim/scadem timpul de lucru al motorului. Dar am incercat sa gasesc timpul de asteptare (setat fix sau...) intre porniri si nu am inteles unde este.

Am testat softul si la inceput a raspund doar la primele 3 butoane. Acum daspunde doar la primele 2. E posibil sa se fi ars iesirile din cauza conectarii pinilor prin butoane la plus 5 v? Un pin nu a raspuns nici din prima data. Am stricat cumva picul?

Link spre comentariu

Vezi in macroul timp am lasat niste comentarii.De asemenei vezi ca butoanele sunt legate la portulA(click dreapta,connection).Ledurile la portB iar iesirea pentru motor portD.Intrarile pe portA le legi la plus printr-o rezistenta 10k iar butoanele intre masa si intrarea portA.

Link spre comentariu

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 cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări