Sari la conținut
ELFORUM - Forumul electronistilor

Banda led programabila


Vizitator Ovidiu Busuioc

Postări Recomandate

Despre asta am amintit si eu cu cateva postari inainte, deoarece am vazut ca ca si dvs. in Mikrochip, ca nici programatorul Mikroelectronica nu il are in lista.

Poate spun prostii pentru PICkit2, dar cu programatorul Mikroe (mikroProg Suite For PIC) se incarca(dar nu si PIC10F320) si se poate configura si salva in HEX.

 

"Poate alegeti un P10FXXX din lista sau mai puternic, 12F, 16F,... si apropo despre programul scris in limbajul mikroC, are doar cateva randuri usor de inteles. Pentru un PIC in capsula SOT23-6LEAD trebuie si un programator care sa contina un adaptor pentru aceasta capsula, deasemenea si pentru alt pic trebuie vazut daca programatorul il are in lista."

 

Programul scris de mine in mikroC si se pare ca nu am gasit o abordare fara goto:

 

 // //Sonoff program cu PIC10Fxxx, 8MHz oscilator intern.

  bit oldstate;

void main()

{
   ANSELA=1;
   TRISA0_bit = 0;
   TRISA1_bit = 1;                                       // set RB1 pin as input
   TRISA2_bit = 0;

   PORTA.B2=0;
   oldstate=0;
   
  prim:
    do {                                                             //primul ciclu do
    if (Button(PORTA, 0, 100, 0)) {               // Detect logical one
      oldstate = 1;                                          // Update flag
    }
    if (oldstate && Button(PORTA, 0, 100, 1)) {   // Detect one-to-zero transition
      Delay_ms(50);
          PORTA.B2=1;                                    //Aprinde LED
          Delay_ms(500);
          PORTA.B2=0;                                   // Stinge LED
      oldstate = 0;
      goto rex;   //merge aici si break; ?        // iese din primul ciclul do
    }
  } while(1);                                    // Endless loop
 rex:
   do {
    if (Button(PORTA, 0, 100, 1)) {               // Detect logical one
      oldstate = 1;                              // Update flag
    }
    if (oldstate && Button(PORTA, 0, 100, 0)) {   // Detect zero-to-one transition
      Delay_ms(50);
          PORTA.B2=1;
          Delay_ms(500);
          PORTA.B2=0;
      oldstate = 0;
      goto prim;                              // se reantoarce la primul ciclu do
    }
  } while(1);                                    // Endless loop

}

 

In atasament este programul complet in MikroC PRO for PIC (7.5.0 dar cred ca merge cu oricare) si Proteus(8.7 SP3).

 Pentru alta versiune editati schema de la inceput si incarcati HEX-ul.

 

@marinitzzo, eu am pus PIC10F320 si am schimbat numele in PIC10F200, deoarece sunt compatibile. El astfel cheama in Proteus 10F200.

 dar cu codul de 320.

 

@gsabac

 

 

Sonoff comenzi cu intrerupator.rar

Editat de gsabac
Link spre comentariu
Acum 2 ore, gsabac a spus:

@marinitzzo, eu am pus PIC10F320 si am schimbat numele in PIC10F200, deoarece sunt compatibile. El astfel cheama in Proteus 10F200.

 dar cu codul de 320.

 

pai exact asta am simulat si eu in proteus 8 ,schiema este cu pic10f200 si codul este cel care mi-lati facut pentru pic10f320 si cand dau start la simulare primesc eroarea 

Untitled.thumb.jpg.658943a1606d8dd7e1028b48f6b31c52.jpg

nu inteleg ce trebuie sa editez in schema de la inceput ?

 

Link spre comentariu

Daca aveti Proteus 8.7 SP3 decomprimati fisierul RAR si utilizati proiectul facut de mine., musai sa inlocuiti fisierul HEX cu acela din directorul decomprimat.

De fapt Proteus schimba doar calea de cautare.

Acum 15 ore, gsabac a spus:

@marinitzzo, eu am pus PIC10F320 si am schimbat numele in PIC10F200, deoarece sunt compatibile. El astfel cheama in Proteus 10F200.

 dar cu codul de 320.

 

pai exact asta am simulat si eu in proteus 8 ,schiema este cu pic10f200 si codul este cel care mi-lati facut pentru pic10f320 si cand dau start la simulare primesc eroarea 

Cred ca v-am explicat foarte clar, puneti in proiect 10F320 si schimbati numele in 10F200, ceea ce nu ati facut!

Pe schema dvs. circuitul arata asa:

                       image.thumb.png.9b4a14dab58e390ba5b53718358f4dde.png

 

Dar schema din proiect este diferita.

            image.thumb.png.59dbe2d93ff7ba5f874071bb64096a54.png         

 

Modificati si veti obtine rezultatele ca in proiect, adica un puls de 500mS la inchiderea intrerupatorului si un puls de 500 mS la deschiderea sa. Daca nu merge postati proiectul dvs. din Proteus, doar un singur fisier, ca sa vad ce ati facut.

 

PS. Mai este ceva, utilizati o tensiune acceptata de 3.3V care este default in Proteus.

 

@gsabac

Editat de gsabac
Link spre comentariu
Acum 5 ore, gsabac a spus:

Daca aveti Proteus 8.7 SP3 decomprimati fisierul RAR si utilizati proiectul facut de mine., musai sa inlocuiti fisierul HEX cu acela din directorul decomprimat.

De fapt Proteus schimba doar calea de cautare

am inteles ce spuneti acum sa fac dar exista o problema la mine , eu folosesc proteus8 profesional(beta) care este o versiune cu crack si in librarie eu nu am decat 10f2xx , am cautat o librarie 10f3xx pentru versiunea mea dar se pare ca nu se gaseste 

d.thumb.jpg.017dad0a8d58cfbbd5c4d5b749422379.jpg

 

diferenta intre schema mea si cea postata de dumneavoastra era doar la numerotarea pinilor uC-ului si denumirea pentru ca selectasem o capsula sot23-6 si nu una dil08  si la denumirea pinilor pentru ca dupa cum am zis eu nu am in librarie PIC10f320,am sa postez si un singur fisier cu proiectul meu de test in proteus 8 dar am sa caut sa schimb si  proteus cu versiunea  8.7sp3 sonofftest.rar

Link spre comentariu
Acum 1 oră, Elison a spus:

Pentru schema de mai sus incearca fisierul atasat.Schimba extensia fisierului din .txt in .hex

PIC10F200.txt · 0 downloads

functioneaza perfect in simulator programelul pe care l-ati facut si se pare ca am rezolvat problema , inca o rugaminte mai am ,daca tot au ramas 2 pini liberi pe uC care pot fii folositi si ca intrare si ca iesire se poate sa modificati putin fisierul ca sa il pot folosi si pentru sonoff dual ,adica sa pot atasa 2 intrerupatoare independente , atasez o schema pentru a se intelege mai bine 

2.thumb.jpg.cadf9004d4a1e137e86d4fbfcdefe336.jpg

in momentul de fata SW1 lucreaza cu D1 daca este posibil ca sw2 sa lucreze cu D2 atunci il pot folosi pentru intrerupator dublu cu releu dublu(sonoff dual)

multumesc toturor pentru ajutor , sunteti cu totii de treaba si raman dator de cinste .

Link spre comentariu
Acum 56 minute, marinizzo a spus:

functioneaza perfect in simulator programelul pe care l-ati facut si se pare ca am rezolvat problema , inca o rugaminte mai am ,daca tot au ramas 2 pini liberi pe uC care pot fii folositi si ca intrare si ca iesire se poate sa modificati putin fisierul ca sa il pot folosi si pentru sonoff dual ,adica sa pot atasa 2 intrerupatoare independente , atasez o schema pentru a se intelege mai bine 

2.thumb.jpg.cadf9004d4a1e137e86d4fbfcdefe336.jpg

in momentul de fata SW1 lucreaza cu D1 daca este posibil ca sw2 sa lucreze cu D2 atunci il pot folosi pentru intrerupator dublu cu releu dublu(sonoff dual)

multumesc toturor pentru ajutor , sunteti cu totii de treaba si raman dator de cinste .

 

PIC10F200_dual.txt

Link spre comentariu

merge perfect si hex-ul pentru varianta dual :aplauzese pare ca sa rezolvat cu micul meu proiect si tot ce ramane este sa-i dau drumul la treaba,

multumesc inca o data tuturor care s-au implicat in proiectul meu si in special lui Elison, Gsabac si Ticu, va doresc multa sanatate si poate pe viitor o sa pot sa ma recompensez si eu fata de voi!

Link spre comentariu

Multumim pentru observatie, doar o mica neadvertenta, poate chiar o greseala si s-ar putea sa merga sau sa nu mearga.

Codul l-am scris pentru PIC10F320 si intradevar PIC10F200 nu are comanda ANSELA, dar cine nu risca nu castiga si in acest caz o experimentare

 de catre cei interesati se face rapid si poate nu are riscuri, ramane de vazut. Am facut acest compromis datorita cunostintelor mele limitate

 si mediului mikroC care nu are suport pentru seria 10F2xx dar in MPLAB, pentru cine cunoaste, este suport complet pentru aceasta serie.

 

@gsabac

Link spre comentariu
  • 1 lună mai târziu...
La 14.10.2019 la 9:07, gsabac a spus:

 

a venit momentul sa ma apuc sa programez acest minuscul PIC , am asteptat ca cel de la tme sa isi refaca stocul si am comandat 10 bucati , am facut un mic adaptor (soclu) ca sa il pot programa asa cum am facut si pentru pic16f.. dar cand am incercat sa programez cu programatorul meu am primit mesajele astea 

Screenshot 2019-12-08 15.38.56.png

Screenshot 2019-12-08 16.12.56.png

Link spre comentariu

Zilele astea mi-am adus aminte de proiectelul meu pentru comandat leduri WS2812B cu picuri, l-am curatat putin, l-am organizat ca "biblioteca" si l-am testat (aprinzand 5 leduri cu culori si cu pauze aleatoare) cu un PIC16F877 si cu un PIC18F14K50 (asta am la indemana).

Atasez proiectul ("formatat" mplabx + xc8) intr-o arhiva. NU ESTE PROIECT "ars si merge" *), nici macar nu include hex-ul, dar (mi se pare mie) se poate adapta destul de usor pentru o gama larga de picuri. Am incercat sa comentez suficient codul, sper sa va descurcati.

Cerinta cea mai importanta e frecventa oscilatorului folosit. Proiectat e pentru 20 MHz, mie mi-a mers si 18F14K50-ul cu oscilatorul intern de 16 MHz. La diferente mai mari sunt sanse sa nu mai functioneze.

 

*) merge cum spuneam cu 16f877/18f14k50 si maxim 5 led-uri.

 

PS Probabil n-o sa-l foloseasca nimeni (mai ales ca nu e complet public), stiu, da' nu-i nimic, am de unde sa-l iau daca-mi trebuie pe viitor. :rade:

LE Testat cu 10 leduri...

 

ws2812bPic-master.zip

Editat de Liviu M
Link spre comentariu

am reusit intr-un final sa programez  acest MCU si am facut si un montaj , l-am testat si functioneaza perfect . se pare ca problema era din mai multe locuri , una din ele era ca nu facea contact bine MCU-ul in suportul care l-am facut , alta din ele este de la programatorul meu care desi dadea o eroare la finalul scrieri, dupa citirea pic-ului daca reprogramam il putea citi si totul era ok 

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