Jump to content
ELFORUM - Forumul Electronistilor
Ovidiu Busuioc

Banda led programabila

Recommended Posts

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

Edited by gsabac

Share this post


Link to post
Share on other sites

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 ?

 

Share this post


Link to post
Share on other sites

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

Edited by gsabac

Share this post


Link to post
Share on other sites

Daca tot ce face pic-ul asta e sa detecteze modificarile unui pin, eu as folosi intreruperea "de modificare" (IOC) pentru pinul respectiv.

Share this post


Link to post
Share on other sites
La 11.10.2019 la 12:31, marinizzo a spus:

 .pic10f200.thumb.jpg.6af0009adaf90078c7cb9d51a94d398b.jpg

 

 

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

PIC10F200.txt

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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 .

Share this post


Link to post
Share on other sites
Acum 2 ore, Elison a spus:

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

PIC10F200.txt · 1 download

Merge perfect!

 

@gsabac

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

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!

Share this post


Link to post
Share on other sites

Si ce va zice 10F200 cand programul ii va cere sa seteze ANSELA (set = 1, clear = 0)? Care ANSELA nu exista in 10F200.

 

Intreb si eu, nu vreau sa insinuez nimic.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.