Sari la conținut
ELFORUM - Forumul electronistilor

PWM 50Hz cu PIC16F876


Postări Recomandate

Am si eu o problema.

 

Trebuie sa scot un PWM la 50Hz.

Firesc ca frecventa minima de pwm care o suporta 876 cu clock de 4MHz este 250Hz.

Ce am incercat?

1: PWM de 500Hz si un ls490 care sa divizeze cu 10 => nu este bine.  :)

2: Iar pwm de 500, citesc pe un pin liber valoarea si incerc sa o scot divizata cu 10 pe o iesire. => nu am reusit.

 

Ce mai incerc?

 

 

 

Asa arata partea de pwm:

 

 // PWM init PWM1_Init(250); PWM1_Start(); pwm = 0; PWM1_Set_Duty(pwm);

 

 //control pwm   if (val1 >= 44) { Delay_ms(10); if (pwm < 230) pwm=pwm+2; PWM1_Set_Duty(pwm);}   else if (val1 <= 35) { Delay_ms(10); if (pwm !=0) pwm--; PWM1_Set_Duty(pwm);}

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

Top autori în acest subiect

Top autori în acest subiect

Pwm software pe baza de intreruperi. Ceva in genu asta: http://saeedsolutions.blogspot.ro/2012/10/pic16f84a-pwm-code-proteus-simulation.html sau asta: http://www.best-microcontroller-projects.com/pic-pwm-interrupt.html cu modificari pe prescaler la timer si corectii a valorii timerului prin adunarea unei valori fixe in intrerupere sa dea 50Hz.

 

Editat de ventzel
Link spre comentariu

Pai asta am vrut!

Acum o sa setez PWM la 500Hz si o sa am PWM de 50. :)

Pot de asemeni sa las pwm la 250Hz si sa folosesc doar divizarea cu 5 din 490.

Altfel, aveam niste posibilitati fascinante:

1: sa merg pe clock de 500KHz la pic...... (consecinte urate la rularea programului)

2: sa ma frec cu "time intrerupt" dar nici aici nu as fi iesit exact cu divizarea probabil.

 

Oricum ideea nu este rea si usor aplicabila in caz de frecvente pwm mai mari (ja un clock de 20MHz as fi avut pwm minim de 1221Hz).

Link spre comentariu

Pai asa se si intampla.

Am doar divizare cu 10.

Factorul de umplere este de la 0 la 100%.

Generez din pic 500Hz si scot 50Hz proportional ca si factor de umplere dupa divizor.

Vreti sa incercati cu hexu-l si simularea in Proteus?

Am pus in practica (fizic) si este absolut in regula acum cand fac comanda cu 50Hz.

Editat de bratueduard
Link spre comentariu

Pentru schema de divizor postata cu un PWM dintr-un PIC cu factor de umplere intre 0 si 99% la iesire am avut factor de umplere intre 0 si 9.9% simulat tot in Proteus. Asta mi-a atras atentia dupa ce am vazut si formele de unda care le ai pe osciloscopu din poze. Nu are cum sa treaca de 10% da daca il poti folosi nu are importanta ce zic io:P

Editat de ventzel
Link spre comentariu

Undeva in foto pe un display, scrie si valoarea pwm. (32 si 126) ca dferenta intre cele doua foto.

Cred ca si latimea impulsului se oserva la pwm 126 si nu seamana cu 10%

Am incarcat un soft cu "pwm value" maxim de 130 in simularea respectiva pentru ca imi era leme sa deschid MikroC si sa fac modificare pentru 253 pwm maxim.

Dar haideti ca adaug fila de proteus si un hex cu pwm de 250.

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