Sari la conținut
ELFORUM - Forumul electronistilor

Nixie ИН13 pe USB


Mikrosha

Postări Recomandate

Vreau sa prezint un proiect, destul de simplu si cam inutil dar simpatic. Sper sa va placa, astept comentariile si opiniile voastre.

Consta prin controlul unui bargraph Nixie, printr-un port serial emulat prin USB. Pentru inceput, schema:

Posted Image

http://pinouts.ru/images/usb-rs232.gif

Tot montajul se alimenteaza din portul USB, adica de la 5V.

Cablajul l-am facut pnp cu foaie de revista prin metoda pnp, asa ca FT232RL l-am pus pe o placutza separata, ca sa nu am grija unei bune rezolutii la placa mare. De remarcat, driverul pt FT232 trebuie musai luat de pe saitul FTDI. Driverul de Windows face Windowsul sa crape (blue screen, apoi restart) la fiecare conectare.

PIC12F675, sau PIC12F629 is mici, dar au dezavantajul ca-s vechi si chele. Asa ca a trebuit sa emulez doua generatoare de impulsuri si o receptie seriala asincrona. Nu am folosit intreruperi, lucreaza doar prin polling. Toate delayurile se obtin software. Q2, L1, R4, D2 formeaza un convertor boost, cu factor de umplere fix, comandat de PIC. Este esential sa se foloseasca o bobina cu circuit magnetic deschis si pierderi cat mai mici, din cauza raportului mare de tensiuni de iesire si de intrare. La iesire este nevoie de 100V. Curentul maxim este de 4mA. Acest semnal se opreste pe perioada receptionarii unui byte, ceea ce duce la o scadere usoara a tensiunii la fiecare byte receptionat. (pe un PIC cu modul USART, problema se poate rezolva)

Tensiunea de comanda a lungimii aprinse se face prin PWM, din iesirea GP2, la o frecventa de cca 20Hz. R1 si C2 formeaza un filtru trece jos cu tau destul de mare cat sa nu se simta PWM-ul. La iesirea filtrului se afla o sursa de curent constant comandata in tensiune, formata din Q1 si R3.

 

 

Programul pemtru PIC:

#include

#include

#include

#pragma CLOCK_FREQ 4000000

#pragma DATA _CONFIG, _CP_OFF & _BODEN_OFF &_PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _MCLRE_ON

 

char i,j,duty, out, rxbuf, volt;

//unsigned int j;

 

void rxdata(){

tmr0=151;

 

tmr0=255;

gpio.1=0;

rxbuf=0;

for (i=0;i<10;i++){

 

 

if ((i>0)&&(i<9)){

gpio.5=1;

rxbuf=(rxbuf>>1);rxbuf.7=gpio.4;

gpio.5=0;

}

while (tmr0!=255){}

tmr0=35; //perioada intre citirea a 2 biti din RS232

}

trisio.2=0;

}

 

void pwm(){

gpio.1=0;

for (i=1;i<2;i++)

if (gpio.4==0){trisio.2=1;rxdata();}

gpio.1=1;

for (i=1;i<4;i++) //4 asta depinde de bobina boost, ar trebui incercate valori pana se obtine un transfer maxim de putere.

if (gpio.4==0){trisio.2=1;rxdata();}

}

 

void main()

{

intcon=0b00000000;

option_reg=0b10000001;

trisio=0b11010001;

adcon0=0b00000001;

ansel=0b01100001;

gpio=0;rxbuf=5;

 

while (1)

for (j=0;j<255;j++){

pwm(); //PWM-ul pentru boost

if (j==rxbuf) gpio.2=0; //PWM-ul pentru comanda

if (j==0) gpio.2=1;

}

}

 

Ca exemplu aplicatie, se gaseste pe net un program 'CPU Usage in tray by edgemeal', scris in Visual Basic. Cu fisierul mscomm32.dll, se poate comunica direct cu portul emulat. In fond, se poate folosi orice program. Trebuie transmis spre port un singur byte, la 1200 baud, fara bit de paritate si cu un singur bit de stop. (oricum ignora bitii de control).

 

O poza de-aproape:

Posted Image

...si un HUD. The REAL thing:

Posted Image

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

Top autori în acest subiect

  • Mikrosha

    4

  • Dr.L

    2

  • Kosmin

    1

  • zal

    1

Top autori în acest subiect

  • 2 săptămâni mai târziu...
  • 9 luni mai târziu...

SalutAs vrea sa fac si eu proiectul asta,dar am sa folosesc un acrometru in loc de nixiePoti reposta programul pt pic?Si daca folosesc un convertor usb-serial extern,leg GP4 al microcontrollerului la Tx-ul serialului?Si daca nu cer prea mult,s-ar putea si o varianta de soft pt un atmega 8? Ca pentru el am gasit o varianta de soft+programator ieftin,care sa mearga pe wndows 7.Multumesc!

Link spre comentariu

Salut, doctore.

Am pus proiectul şi pe electrodb.ro, vezi linkul: http://electrodb.ro/atelier/experimente ... ie-pe-usb/

Da, GP4 la ieşirea TX a convertorului, văd că am uitat să specific asta. Practic tot serial merge, dar foloseşte un convertor FT232. Driver de FT232 cred că există pentru Win 7, adică tre să existe. E un cip prea comun. Cu atmega 8 cred că ar ieşi mai ieftin, că are deja în el transceiver USB. Problema e că eu nu am mai lucrat cu Atmel, deci nu ştiu io d-astea.

Modificare pentru acometru: trebuie doar un filtru trece jos RC la ieşirea GP2, care apoi să vină în acometru printr-un potenţiometru serie. La tot convertorul boost se poate renunţa.

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