Sari la conținut
ELFORUM - Forumul electronistilor

Proiect extindere computer bord


DarkAngel_Bv

Postări Recomandate

Buna ziua, incep prin a va spune ca este prima data cand realizez un proiect in jurul unui uC :jytuiyu

Am cunostinte de programare (PHP - 6 ani, C++ - prea putin).

M-am uitat putin la sintaxa folosita in Bascom si imi este familiara.

 

 

Acum se dau informatiile de baza:

Se citesc date de la urmatorii senzori:

- Senzor ABS (viteza, in impulsuri).

- Senzor RPM (la fel, impulsuri).

- Pozitie schimbator viteze (Ma gandeam la rezistente diferite pe fiecare viteza, deci control in tensiune).

- Senzor temperatura apa (In tensiune).

- Senzor combustibil (In tensiune).

- Informatii Cruise control activ (Binar, 0 cand e inactiv, 1 cand este activ).

- 1 sau 2 push-butoane pentru navigarea in meniul de setari.

 

Afisarea o sa o fac pentru inceput pe un LCD cu 10x1 caractere. In viitor doresc sa achizitionez un LCD pentru afisare color.

 

Problema mea este ca nu stiu ce uC sa folosesc (as prefera unul cat mai ieftin care se poate programa cu un programator ce-l pot face eu acasa cu minim de piese, in genul celui care se foloseste cu TwinAVR) si cum ar trebui sa arate o schema de principiu pentru intrare in impulsuri si pentru intrare in tensiune.

 

Si mai am o intrebare se incepator :bataie De cate ori se poate programa un uC? Multumesc anticipat.

 

 

Ca LCD vreau sa folosesc ceva ieftin gen

RX12864A Afişaj grafic 128x64 60,1x44,5x3,9mm COG albastru/alb ( http://zefiryn.tme.pl/dok/a06/rx12864a-biw.pdf ) sau

DEM128160B-TMH Afişaj grafic TFT 128x160 RGB 1,8" - 262000 culori ( http://zefiryn.tme.pl/dok/a06/dem128160b-tmh.pdf ).

 

 

Multumesc anticipat pentru orice sfat in legatura cu proiectul meu.

 

P.S. Daca se preteaza mai bine un PIC ieftin pentru proiectul meu rog un moderator sa mute topicul pe aria PIC si sa ma anunte.

Multumesc inca o data.

 

 

Edit: Pe LCD doresc sa fie afisate cat mai multe informatii. In cazul celui de 10x1 acestea ar trebui afisate unul dupa celalalt, cu o mica pauza, in cazul celui color presupun ca se poate face afisarea tuturor informatiilor pe ecran.

Apropo, am vazut pe situl Bascom ca exista posibilitatea sa fie afisata o poza pe background, este greu de facut asa ceva?

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

Top autori în acest subiect

  • DarkAngel_Bv

    19

  • matache

    10

  • nickrvl

    3

  • stefan_k

    3

Top autori în acest subiect

Sugestie: ia-o mai incet, vezi cu ce se mananca, se pot face multe dar pornind de la zero e mai greu. Ia-o cu pasi mici si etape bine delimitate, indiferent ce controler folosesti.Sugestie de pasi: - afisare informatii pe display 10x1 (de ce nu "clasicul" 16x2 sau chiar 20x4 ? e cam acelasi lucru dpdv al programului) - e mult mai usor decat pe display grafic. Lasa afisarea grafica la final, daca chiar vei mai avea chef de ea (si spatiu in microcontroler). - citire informatii analogice (ADC) - relativ usor de facut, exemple suficiente (pt inceput pe un singur pin) - numarator de impulsuri - iar, exemple suficiente, dar trebuie sa pricepi cum functioneaza (pt inceput pe un singur pin)Dupa ce ti-s clare toate de mai sus, poti sa le pui cap la cap si sa legi si proiectul mare cu toate intrarile pe care le doresti.Fiindca ai intrebat pe aria de Atmel, evident, ti se vor recomanda atmel-uri ... nu mai intreba aici de pic-uri, unii se irita cand aud de ele :PProgramator: pentru inceput, un programator serial (ai nevoie de un port serial) cu care iti vei programa primul microcontroler, pentru un programator usb. Pentru detalii privind programatoarele, poti intreba aici viewtopic.php?f=37&t=22396Eu asa iti sugerez, sa iti construiesti un programator pe usb, e mai comod.Alegere microcontroler: cam "orice" din seria Atmega88/168/328 - cele mai "populare" cu dezavantajul ca la ora actuala pot fi destul de greu de gasit. Eventual cred ca si 8515/8535 s-ar potrivi la ce vrei tu. Indiferent care varianta o alegi, ia datasheet-ul si studiaza-l. Sau mai bine studiaza comparativ datasheeturile la 2-3 variante, si vezi care tu care crezi ca ti s-ar potrivi.Succese.

De cate ori se poate programa un uC?

Datasheet-ul la atmega88/168/328 specifica un numar de 10.000 de scrieri/stergeri.
Link spre comentariu

De ce nu clasicul 16x2? deoarece acest 10x1 il am :)Da, am intrebat pe aria Atmel deoarece YACC-ul ce il am acum este contruit in jurul unui Atmega 168.Programatorul nu ma deranjeaza nici daca este serial nici daca este pe portul paralel. Important este sa fie usor de realizat, cu cat mai putine piese (Nu voi programa mai mult de 1-2 uC-uri pe an :limb: ).

Link spre comentariu

La proiectul pe care il ai in plan, vei programa acelasi microcontroler de cateva ... zeci/sute de ori :)Pentru cateva folosiri da, un programator serial/paralel cu cateva rezistente e suficient. Pentru un proiect de anvergura celui descris de tine in schimb ... tu stii.

Link spre comentariu

am luat pana la urma atmega8 Am vrut sa fac un programator serial insa am constatat ca nu mai am zenner de 5V asa ca nu m-am riscat sa testez programatorul fara ele (am masurat pe portul serial si am 11.9V pe pinii unde vin zener-ele + rezistente).Pana la urma am ales sa fac afisarea pe un display 16x2. Aveti ceva schmeme pentru aplicatii care afiseaza pe un astfel de ecran? daca da, va rog sa-mi dati si mie ceva link-uri :)Multumesc anticipat.

Link spre comentariu

Salutare

Codul este scris in Bascom.

 

$regfile = "m8def.dat"$crystal = 4000000Config Lcd = 16 * 2Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.1 , Rs = Portd.0   Cls   Cursor Off   Locate 1 , 1   Lcd "LCD 16x2 CONFIG "   Locate 2 , 1   Lcd "  BASCOM AVR    "

 

http://avrprojects.info/avr-interfacing/lcd-interface/

 

http://avrprojects.info/avr-projects/th ... ith-clock/

 

http://vanbasil01.blogspot.com/2010/02/ ... mega8.html

 

http://www.avrprojects.net/index.php?op ... &Itemid=57

Link spre comentariu

Multumesc pentru link-uri. Maine voi face rost de display (sper) si voi termina programatorul serial. Apoi urmeaza sa ma joc cu micutul atmega :freaza: Sper sa nu moara subit inainte sa ma faca fericit :rade:

Link spre comentariu

pana la urma am terminat programatorul serial si testul din pony prog spune test ok. Bascom vad ca este pe bani, voi de unde l-ati luat?Edit: Am reusit sa citesc si sa scriu pe Atmega. Cu pony prog versiunea 1 dadea eroare, asa ca am luat pony prog 2000 si cu asta merge.

Link spre comentariu

Scuze pentru posturile consecutive, dar nu pot edita. Ce porturi trebuie sa folosesc pentru intrarea analogica? (in tensiune) si care este tensiunea maxima? cumva 5V?Pentru impulsuri din ce am vazut se folosesc pinii PD2 si PD3 (sau se pot folosi toti pinii PD, de la 0 la 7, diferind doar programarea).

Link spre comentariu

Sugestie: stai cu datasheetul la indemana, acolo gaseai rapid raspunsul. Si stai cu pin-outul in fata, e sfant.Ai pomenit de Atmega8 parca; porturile analogice sunt ADC0-ADC5 - echivalente cu PC0-PC5 (pinii 23-28 la versiunea DIP); pt versiunea TQFP se mai adauga si ADC6, ADC7.Iar la "Electrical Characteristics" gaseai raspunsul la a doua intrebare: Voltage on any Pin except RESET with respect to Ground ................................-0.5V to VCC+0.5VStresses beyond those listed under “Absolute Maximum Ratings” may cause permanent dam- age to the device. This is a stress rating only and functional operation of the device at these or other conditions beyond those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum rating conditions for extended periods may affect device reliability.Cu alte cuvinte: daca alimentezi mc-ul cu 5V, atunci pe orice pin (inclusiv cei analogici) ai voie sa aplici o tensiune maxima de 5V+0.5V = 5.5V; totusi e mentionat ca daca aplici tensiunea maxima pentru perioade mari de timp, e posibil sa fufu mc-ul. Cu alte cuvinte, 5V pe pin ar fi mai sigur.De asemenea, fiind vorba de porturile ADC, functionarea depinde si de tensiunea de referinta. Daca folosesti referinta interna de 2.56V sau cat o fi, atunci aplicarea a 5V pe port va duce clar la overflow. Daca folosesti referinta externa si o setezi la 5V, atunci nu mai ai problema asta.Problemele acestea se rezolva simplu cu divizoare rezistive de tensiune.

Link spre comentariu

pana la urma am terminat programatorul serial si testul din pony prog spune test ok. Bascom vad ca este pe bani, voi de unde l-ati luat?Edit: Am reusit sa citesc si sa scriu pe Atmega. Cu pony prog versiunea 1 dadea eroare, asa ca am luat pony prog 2000 si cu asta merge.

Ce tot ii tragi cu pony prog si Bascom pe bani ?Bascom e free pana la 4k de cod . Scrie pe site la ei .Ce-ti trebuie pony prog cand Bascom suporta toate tipurile de programatoare ?Bascom e complet : E UN MEDIU DE DEZVOLTARE !Folosesc de 10ani de zile Bascom free si programatorul pe port paralel si nici odata nu am avut vreo greseala sau problema !Nu stiu ce inseamna de 10 ani atmel blocat ! Niciodata !E foarte usor de folosit , programat , simulat , scris cod in Bascom Avr !Iar daca ai nevoie de Bascom complet se gaseste .... dar iti trebuie un pic de "smecherie " ...mai multe nu spun !Baza oricarui proiect este datasheetul chipului !daca nu-l citesti nu vei invata nimic niciodata .
Link spre comentariu

Am "facut rost" de bascom complet :nebunrau: Cu pony prog merge sigur programatorul serial pe care l-am facut. @stefan_k, deci sa inteleg ca pe vref pun +5v ca sa nu ajung la overflow. In orice caz, impulsurile au amplitudinea maxima de 15Vvv, deci un divizor rezistiv 1:3 ar fi ok.Si da, stau cu pinout-ul in fata mereu :)

Link spre comentariu
  • 2 ani mai târziu...

Wow, nu-mi vine sa cred ca au trecut mai bine de 2 ani de cand am facut postul original :ras: Acum, trecand peste introducere, proiectul inca nu este finalizat (din lipsa de timp mai mult decat din lipsa de cunostinte).as avea nevoie totusi de ajutor in privinta unui algoritm de masurare a carburantului injectat.as putea face diferenta intre durata impulsurilor high si durata impulsurilor low (sa zicem 10.000 impulsuri high, 10.000 low si fac media intre ele, astfel afland factorul de umplere). In felul acesta, stiind presiunea in rampa (5 bari in cazul meu, default era 3 bari) pot sa caulez destul de precis cantitatea ce trece prin injectoare. Doar ca am si un diesel pe care as vrea sa il pun, si acolo presiunea variaza intre 180 si 340 bari in functie de mai multi parametrii (turatie, pozitie pedala, incarcare motor, etc). Acolo singura solutie viabila ar fi sa am si un coeficient pe care sa il stabilesc prin tatonare.Ma gandesc sa folosesc niste variabile stocate in EEPROM care sa le pot incarca prin USB din laptop (cel putin in varianta de test, ca sa nu ma apuc sa fac meniuri si alte nebunii).Daca puteti sa imi dati un exemplu de rutina de interrupt pentru calculat factorul de umplere sunt cel mai fericit :d

Link spre comentariu

........as avea nevoie totusi de ajutor in privinta unui algoritm de masurare a carburantului injectat.............................Daca puteti sa imi dati un exemplu de rutina de interrupt pentru calculat factorul de umplere sunt cel mai fericit :d

Si totusi, un debitmetru nu ar face mai bine treaba? :nas:
Link spre comentariu

Nu. Pentru ca:1. Nu cred ca poate masura consumul de 2-3Mg de combustibil consumat per ciclu.2. Nu cred ca poate masura consumul la o presiune de 5 bari.3. Exista si retur. Ar trebui sa masor turul si returul si sa fac scaderea, doar ca diferenta intre tur si retur ar fi foarte mica (in principiu pompa ajunge si la 15 bari, deci tot surplusul peste cei 5 bari ii da inapoi pe retur).

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