Powered By Blogger

martes, 10 de enero de 2017

CONTROL ELECTRÓNICO DE MOTORES CON PULSADORES

void main()
{   unsigned short leer;

    trisb=0x3f;
    trisd=0x00;

    pwm_init(1000);
    pwm_change_duty(0);
    pwm2_change_duty(1);
    pwm_start();
    pwm2_start();
    portb.f7=0;
    portb.f6=0;
    portd.f0=0;
    portd.f1=0;
x7:
    leer=portb;
    leer=leer & 0x3f;
    if(leer==0x01) //activa bajo
    goto x1;
    if(leer==0x02) //activa medio
    goto x2;
    if(leer==0x04) //activa alto
    goto x3;
    if(leer==0x08) //activa stop
    goto x4;
    if(leer==0x10) //activa horario
    goto x5;
    if(leer==0x20) //activa antihorario
    goto x6;
    goto x7;
x1:
    pwm_change_duty(51);   pwm2_change_duty(51);   //bajo
    goto x7;
x2:
    pwm_change_duty(128);  pwm2_change_duty(128);  //medio
    goto x7;
x3:
    pwm_change_duty(255);  pwm2_change_duty(255);  //alto
    goto x7;
x4:
    pwm_change_duty(0);    pwm2_change_duty(0);    //apagado
    goto x7;
x5:
    portb.f7=0;
    portb.f6=1;   //horario
    portd.f0=0;
    portd.f1=1;
    goto x7;
x6:
    portb.f7=1;   //antihorario
    portb.f6=0;
    portd.f0=1;
    portd.f1=0;
    goto x7;

}

calculadora con arduino

#include <LiquidCrystal.h>
//#include <>
#include <Keypad.h>
int a=0;
int b=0;
int z=0;
int Suma=0;
int va=0;
int Resta=0;
//int di=0;
int multiplicacion=0;
char t;
const byte filas = 4;
const byte columnas = 4;
char k[filas][columnas] ={
   {'1','2','3','+'},
   {'4','5','6','B'},
   {'7','8','9','-'},
   {'*','0','x','D'}
  };
byte  pinfilas[filas] = {7,6,5,4};
byte  pincolumnas[columnas] = {3,2,A4,A5};
Keypad keypad = Keypad(makeKeymap(k),pinfilas, pincolumnas, filas, columnas);
LiquidCrystal lcd(13,12,11,10,9,8);//pin8al 4 pin9 al5
void setup()
{

lcd.begin(16,2);
lcd.print("  CALCULADORA ");
delay(10000);
lcd.clear();
lcd.setCursor(5,0);

}

void loop()
{
t = keypad.getKey();
 if(t!= NO_KEY)
 {
lcd.print(t);
t = t -48;
va++;

switch(va)
{
 case 1:
 a = t;
 break;
 case 2:
 z = t;
 break;
 case 3:
 b = t;
 break;
 }
 if(t ==+18)
 {
  Suma = a+b;
  lcd.setCursor(3,1);
  lcd.print("!!SUMA!!");
  lcd.setCursor(9,0);
  lcd.print(Suma);
  lcd.setCursor(8,0);
  lcd.print("=");
  va=0;
 }
 if(t==+20)
 {
  Resta = a-b;
  lcd.setCursor(3,1);
  lcd.print("!!RESTA!!");
  lcd.setCursor(9,0);
  lcd.print(Resta);
  lcd.setCursor(8,0);
  lcd.print("=");
  va=0;
 }/*
 if(t==+20)
 {
  di=a/b;

  lcd.setCursor(2,1);
  lcd.print("DIVICION");
  lcd.setCursor(13,1);
  lcd.print,(di);
  lcd.setCursor(7,0);
  lcd.print("=");
  va=0;
 }*/
 if(t==-6)
 {
  multiplicacion=a*b;
  lcd.setCursor(1,1);
  lcd.print("MULTIPLICACION");
  lcd.setCursor(9,0);
  lcd.print(multiplicacion);
  lcd.setCursor(8,0);
  lcd.print("=");
  va=0;
 }
 if(t==0)
 {
  lcd.clear();
  lcd.setCursor(5,0);
  va=0;
 }
 }
}

martes, 3 de enero de 2017

PIANO ELECTRÓNICO CON PIC16F877A





MATERIALES


  •      pic16f877a
  •     cables
  •    pulsadores
  •   resistencias
  •    parlante
  •      potenciómetro
  •      protoboar
  •       LCD

PROGRAMACION  EN MIKROC

        void main()
{  unsigned short leer;
     sound_init(&portd,0);
     trisb=0x00;
     trisc=0xff;
     portd=0;
lcd_config(&portb,1,0,2,7,6,5,4);
lcd_cmd(lcd_clear);
lcd_cmd(lcd_cursor_off);
lcd_out(1,6,"NOTAS !");
   x8:
   leer=portc;
   leer=leer & 0xff;
  
   if(leer==0x01)
   goto x1;
   if(leer==0x02)
   goto x2;
   if(leer==0x04)
   goto x3;
   if(leer==0x08)
   goto x4;
   if(leer==0x10)
   goto x5;
   if(leer==0x20)
   goto x6;
   if(leer==0x40)
   goto x7;
   if(leer==0x80)
   goto x9;
   goto x8;
  
     x1:
     sound_play (261,250);// do
     lcd_out(2,6,"DO !");
     goto x8;
     x2:
     sound_play(294,250);// re
     lcd_out(2,6,"RE !");
     goto x8;
     x3:
     sound_play(330,250);//mi
     lcd_out(2,6,"MI !");
     goto x8;
     x4:
     sound_play(350,250);//fa
     lcd_out(2,6,"FA !");
     goto x8;
     x5:
     sound_play(392,250);//sol
     lcd_out(2,6,"SOL ");
     goto x8;
     x6:
     sound_play(440,250);//la
     lcd_out(2,6,"LA !");
     goto x8;
     x7:
     sound_play(493,250);//si
     lcd_out(2,6,"SI !");
     goto x8;
     x9:

         lcd_out(1,6,"ESTALIN");
      sound_play (329,800);
       sound_play(440,800);
       sound_play(415,800);
      sound_play(440,800);
      sound_play(493,800);
      sound_play(523,800);
      sound_play(443,800);
      sound_play (523,800);
       sound_play(293,800);
       sound_play(329,800);
      
      
      sound_play(392,800);
      sound_play(329,800);
      sound_play(440,800);
      sound_play(392,800);
          sound_play (329,800);
       sound_play(329,800);
       sound_play(393,800);
      sound_play(523,800);
      sound_play(293,800);
      sound_play(523,800);
      sound_play(440,800);
     
     
          sound_play (329,800);
       sound_play(440,800);
       sound_play(415,800);
      sound_play(440,800);
      sound_play(443,800);
      sound_play(523,800);
      sound_play(443,800);
        sound_play (523,800);
       sound_play(293,800);
       sound_play(329,800);
      
      
      sound_play(392,800);
      sound_play(329,800);
      sound_play(440,800);
      sound_play(392,800);
        sound_play (329,800);
       sound_play(329,800);
       sound_play(393,800);
      sound_play(593,800);
      sound_play(293,800);
      sound_play(523,800);
      sound_play(440,800);
     
     
       sound_play(329,800);
       sound_play(440,800);
      sound_play(415,800);
      sound_play(440,800);
      sound_play(415,800);
      sound_play(440,800);
       sound_play(415,800);
       sound_play(440,800);
      sound_play(443,800);
      sound_play(523,800);
     
      
      sound_play(523,800);
      sound_play(440,800);
        sound_play (392,800);
       sound_play(440,800);
       sound_play(392,800);
      sound_play(329,800);


        goto x8;

}




                                                                  PROTEUS