Sari la conținut
ELFORUM - Forumul electronistilor

Caut profesor de programare PIC


Vizitator viva

Postări Recomandate

Buuun, hai sa ne apucam de treaba.

Tema {de revizuit si completat de viva}

1. Sa se realizeze un automat secvential cu un numar maxim S=24 stari si un numar maxim N=24 iesiri.

2. Fiecare stare va avea o durata configurabila prin programare off-line (procesul oprit si automatul scos din functiune), cu urmatoarele caracteristici:

a. Valoarea minima a duratei Dmin=1msec

b. Valoarea maxima a duratei Dmax=1min

c. Rezolutia de determinare a duratei Drez=1msec

4. Automatul va dispune de:

- 1 intrerupator de alimentare

- 1 buton pentru reset (readucerea automatului in starea de dinainte de pornirea procesului)

- 2 butoane, unul pentru pornirea (verde) si altul pentru intreruperea (rosu) procesului.

- 1 indicator luminos cu urmatoarea functionare:

- cand procesul este intrerupt, lumineaza intermitent cu o cadenta de 1 aprindere pe secunda si factor de umplere 50%

- cand procesul este pornit, lumineaza permanent

(culoarea indicatorului nu e precizata)

4. Automatul va rula ciclic secventa de stari de la pornirea procesului si pana la intreruperea lui.

5. La prima pornire a procesului, secventa va incepe de la prima stare.

6. La repornirea procesului (dupa intrerupere), secventa se va continua de la starea care se executa in momentul primirii comenzii de oprire.

 

Hardware {de revizuit/corectat de mesteri}

Componentele cuprinse in paranteze drepte sunt optionale, cu remarcile corespunzatoare.

Lista priveste doar automatul propriu-zis, cu iesire direct pe porturi (pentru inceput; daca va fi cazul se poate modifica usor programul pentru... multiplexare) si afisare pe leduri individuale. Circuitele de actionare se vor realiza ulterior (poate chiar separat).

1 x PIC 16F877A-I/P (microcontroller 40 pini)

1 x soclu 40 pini (sau 2 barete Augat de cate 20 de pini)

1 x LM 7805T (regulator de tensiune)

[* 1 x 7812T - ma gandeam la un ICSP cu alimentare "on board" ca o alternativa comoda pentru programare]

1 x transformator 220V/6V min. 10VA, de preferinta toroidal [12V pentru optiunea *]

1 x punte redresoare min 100V/1A

1 x condensator electrolitic 4700 uF/16V [25V pentru optiunea *]

2 x condensator multistrat 0,1 uF [+1 pentru optiunea *]

1 x cuart 20 MHz

2 x condensator ceramic 22 pF

24 x led pentru afisarea starilor (de care se doreste)

25 x rezistor 330 ohmi / 0,25W pentru limitarea curentului prin leduri

1 x intrerupator bifazic 220Vac/1A

3 x push-button (pornit, oprit, reset)

3 x rezistor 10 kohmi / 0,25W pentru "strong pull-up"

1 x led indicator de stare (eu as lua unul de dimesiuni asemanatoare push-butoanelor, deci relativ mare, 10 mm)

1 x placuta de test cu pastile dreptunghiulare (daca nu, merge si rotunde, dar individuale, nu grupate pe cate 3 gauri) si dimensiuni 150x100mm (sa incapa in "jumatate" de cutie (vezi mai jos)

1 x cutie de circa 200x150x50mm pentru gazduirea montajului

1 x priza DB25 mama de montat pe panou

1 x conector DB25 tata + carcasa (pentru viitorul cablu catre ce va mai urma)

 

 

Software

{doar o sugestie}

Programul este alcatuit din:

A. O tabela in care sunt inscrise "linii" de cate 5 octeti:

- 3 dintre ei sunt pentru comanda iesirilor in starea respectiva

- 2 pentru stabilirea duratei stari

Un "program de proces" ar ocupa astfel maxim 120 cuvinte de memorie (120 x retlw )

B1. O bucla de parcurgere a tabelului, "controlata" de intarzieri facute cu rutine de delay

B2. O rutina de intrerupere pe TMR (trebuie vazut care pentru simplitate) cu acelasi efect, dar fara delay-uri

C. O rutina pe interrupt on change la cele doua butoane de pornire/oprire.

 

Viva, eu tot n-am inteles prea bine cum e cu Clujul si restul lumii, dar cata vreme mai postezi pe-aici e permis sa... joci la doua capete :d

Link spre comentariu
  • Răspunsuri 38
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

Vizitator viva

Abram,Multumesc, tema e bine, desi chiar si aia imi e greu sa analizez/stiu.Acuma, eu cumpar ce-mi zici/ziceti. Deci nu comentez fiindca imi prind urechile la hardware.Zi-mi ce-mi trebuie in prima faza ca sa vad chipul legat la calculator si eventual "sa ma uit in el", deci chip, soclu, cablu si soft.......Am 2 programe winpic si libertybasic....banuiesc ca unul din ele o sa mi fie bun, daca nu, recomanda altceva. Dupa ce ma uit prin chip, etc , incep sa iau placuta, leduri etc.

Link spre comentariu
Vizitator viva

In ce priveste joaca la doua capete. Abram, este deosebit de greu si o sa mearga lent aici pe pagina fiindca eu sint la 0. Proiectul ce vine pus pe masina o sa se faca la Cluj. Si acolo mi s-a zis ca e simplu si se face repede. Il voi pune de urgenta pe utilaj ca sa miste productia.In paralel, ca hobby, absolut independent, vreau sa fac alt controlator de proces...fiindca chiar si la Cluj nu o sa pot sa ma mut acolo sa invat de la programatorul de acolo. Programatorul de acolo imi face procesul si-mi arata chestii, atat cat incape in 2-3 vizite ale mele acolo; voi stii apoi sa-mi bag nasul in program si sa fac mici modificari, dar tot nu voi stii programare PIC.Programarea pic, tocmai am inceput-o cu voi; am deja lucrurile aproape clarificate de tine [teoria], mai trebuie doar sa-mi iau piesele si sa invat limbajul si trucurile cu cine vrea sa mai posteze aici. La sfarsit, Clujul imi va rezolva situatia de criza de timp, dar nu o sa pot sa merg pe acolo prea des, de fapt nu o sa deranjez lumea mai mult de 3-4 ori pe acolo. Nu pot. O sa am un moment cand utilajul meu va functiona cu creierul produs la Cluj fara ca eu sa stiu cum a fost facut si cu ce. Va fi un moment lung, poate de luni de zile, pana cand eu voi stii mai mult decat sa-mi bag nasul in proces ca sa fac mici modificari, lucru ce voi invata la Cluj.Restul , 80% din ce tre sa stiu ca sa pot spune ca sint mediocru spre bun la programat picuri, va trebui sa l invat singur, citind pe aici...Treaba cu Clujul a derutat multa lume, dar cred ca dupa mesajul asta vor intelege ca pt mine ar fi nemaipomenit sa-mi pot face singur un led sa intermiteze. S-a rezolvat urgenta procesului, dar in intelegerea mea nu am rezolvat nimic, inca sint la 0.Multumesc pentru postare si timpul petrecut cu procesul meu. Zilele astea iau picul si soclul si incep sa invat limbajul. Nu mai sint presat de timp si cine mai zice cate ceva, e binevenit.Chiar si procesul asta din animatie, din prima, e mult pt mine. Poate ar trebui intai sa invat sa fac 5 leduri asezate in cerc , sa se "invarta" din ce in ce mai tare in sensul acelor de ceas, sau chetii de astea.

Link spre comentariu

Usurel, ca glumeam :d

Atunci zic ca ar trebui sa schimbam abordarea. Sa lasam putin in pace "proiectul" si sa ne ocupam pentru inceput de ceva mai... didactic. Desi "distance learning" e o chestie delicata, putem incerca.

Eu cand am inceput, am citit si m-am "jucat" cu chestii de aici.

Mai sunt si altele si zici ca ti-ai bagat nasul prin multe.

Poate ar fi interesant sa ne fixam pe unul, sa-l iei sistematic si sa ne intrebi chestii la obiect.

 

In ceea ce priveste programatorul (ca sa te "uiti" in PIC) sunt cateva topice pe aici si o sumedenie pe net. Cum zicea cineva recent, cel mai bun programator e cel pe care l-ai facut si merge. Eu mi-am facut unul de capul meu, pe portul paralel (ca multe laptopuri nu mai au port serial), dar nu l-am incercat inca pe prea multe tipuri de PIC, deci nu ma risc. Zerro a recomandat si el ceva.

Citeste topicele de programatoare si daca nu te-ai hotarat, intervi acolo si ceri sfatul.

 

Intre timp eu o sa mai "sap" la "proiect".

Link spre comentariu

1. Te inteleg Viva, dar sa sti ca e greu sa inveti programarea PIC-urilor daca ai termen de terminare a automatului. Pe de alta parte asa inveti vrand nevrand. Dar gata cu vorbaria.2. Ce ti-a propus Abram este un inceput promitator si chiar daca la soft ti-a cerut numai tie (Viva) parerea as face o mica observatie: Ciclul de 20 de cuie sa reia, fara repornirea automatului, dar comandat de aparitia unei alte scanduri pe pozitie, deci ar trebui revazuta animatia. Cel putin asa mi se pare mie ca se desfasoara procesul. In acest caz timpul intre doua cicluri(20 de cuie) este independent de timp si este comandat de aparitia scandurii pe pozitie. Si inca ceva, automatul se poate porni daca nu este apasata pedala cu piciorul?Cu respect,

Link spre comentariu

Cand am scris "tema de proiectare" nu m-am gandit de loc fix la procesul de implementat. Procesul descris de animatie sau altul, tot un drac. Cerintele din tema sunt generice, pentru orice proces.Sunt de acord ca "bucla" ar putea sa nu includa niste operatii executate la lansarea procesului. "Responsabilitatea" specificatiilor de proces este exclusiv a beneficiarului :d Rolul proiectantului este de a le transpune cum trebuie pentru a fi intelese si de unul si de celalalt ca sa fie convinsi ca nu iese ca in chestia aia cu leaganul agatat de creanga unui copac.Asa cum spuneam insa, tema nu include inca specificatiile procesului ala particular.

Link spre comentariu
Vizitator viva

Buna,Sint in concediu. Nu m-am putut abtine... Ramane peste 10-15 zile. O sa va scriu cate un mesaj privat, daca nu mai dati pe aici, daca nu e mare deranjul. Vacanta sau concediu placut, va doresc.

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