marți, 17 martie 2015

Astabil cu led-uri folosind microcontroller PIC16F876 si ARDUINO



Una din schemele folosite pentru intelegerea electronicii este astabilul cu 2 led-uri. Schema initiala este formata din: 2 led-uri, 2 tranzistori, 2 condensatori, 4 rezistori si binenteles sursa de alimentare de 9-12V sau o baterie de 9-12V.
Acest montaj se folosea la automobilul DACIA 1300, 1310 pentru a indica starea bateriei.
In figura urmatoare este prezentata schema initiala ( originala ):




Vom lua aceasta schema si o realizam folosind un microcontroller PIC16F876 si apoi folosind placa de dezvoltare ARDUINO MEGA 2560.

Schemele sunt realizate in PROTEUS v8.0 iar fisierele cu codul sursa sunt realizate in MikroC Pro for PIC respective ARDUINO. Toate schemele sunt simulate folosind PROTEUS v8.0

SCHEMA ASTABIL CU 2 LED-URI FOLOSIND PIC16F876




Codul sursa:
void main()
 {
  PORTB=0;
  TRISB = 0;                                          // definim portul B ca fiind de iesire
    while(1)
    {
     PORTB=0b00000010;                // aprindem ledul de la RB1
     Delay_ms(1000);                         // il tinem aprins 1 secunda
     PORTB=0b00000000;               // stingem ledul de la RB1
     PORTB=0b00100000;                // aprindem ledul de la RB5
     Delay_ms(1000);                         // il tinem aprins 1 secunda
     PORTB=0b00000000;                // stingem ledul de la RB5
     }
}
SCHEMA ASTABIL CU 2 LED-URI FOLOSIND ARDUINO MEGA 2560


 

Codul sursa:


void setup()

{

  pinMode(51,OUTPUT);               //configuram pinul 51 ca fiind de iesire

  pinMode(52,OUTPUT);             //configuram pinul 52 ca fiind de iesire

}

void loop()

{

  digitalWrite(51, HIGH);                //aprindem led-ul de la pinul 51

  delay(1000);                                 //il tinem aprins 1 secunda

  digitalWrite(51, LOW);              //oprim led-ul de la pinul 51

  digitalWrite(52, HIGH);               //aprindem ledul de la pinul 52

  delay(1000);                                //il tinem aprins 1 secunda

  digitalWrite(52, LOW);              //oprim ledul de la pinul 52

}