jueves, 18 de febrero de 2016

Osciloscopio Digital con Micro Controladores PIC

Diseño de un Osciloscopio Digital Bluetooth mediante el uso de Micro Controladores PIC y el uso de dispositivos móviles Teléfonos y Tabletas como un osciloscopio Digital remoto que nos permite visualizar los procesos que realizamos con nuestro sistemas de micro controladores. Mediante este diseño transformamos nuestro teléfono y tableta electrónica en un osciloscopio digital.



El programa que requerimos instalar en nuestros dispositivos móviles es gratuito y lo podemos descargar desde:

OSCILOSCOPIO BLUETOOTH  GOOGLE PLAY:



OSCILOSCOPIO BLUETOOTH AMAZON:


Pueden descargar el cogido fuente para programar el PIC :


//#include <16f877A.h>
#include <18F4550.h>
#device ADC=8
//#fuses HS,nowdt,noprotect,nolvp,nodebug,usbdiv,pll5,cpudiv2,vregen
#fuses HS,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
//#fuses NOWDT,XT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay (clock = 20M )
#use fast_io(c)
#use rs232(baud=9600,bits=8,parity=n,xmit=pin_c6,rcv=pin_c7)
#priority rda,timer1,ad
#include <LCD4x16_2016.c>
//#include <LCD4x16_877A.c>
#byte PUERTO_A=0xf80
#byte PUERTO_B=0xf81
#byte PUERTO_C=0xf82
#byte PUERTO_D=0xf83
#byte PUERTO_E=0xf84


char valor,car1='$',car2='#';
int sw=0;
char dato[30]="";
char mensajeTx [12];
float conversion,conv=0.00;
#int_rda
recibir()
{
while ( kbhit())
{
valor=getc();//recibe el dato del pc y lo guarda en valor
sw=1;

}
}

#INT_AD
ver()
{


}



void main ()

{

  //Setup_adc_ports(NO_ANALOGS);
  lcd_init();
  set_tris_a(0b00000001);
  set_tris_b(0b00000000);
  set_tris_c(0b10000000);
  set_tris_d(0b00000000);

  lcd_init();
 lcd_gotoxy(1,1);
 printf(lcd_putc,"Osciloscopio BTH");
 output_a(0xFF);
 setup_adc_ports(AN0_ANALOG);
 setup_adc(ADC_CLOCK_DIV_8);
 enable_interrupts(INT_AD);
 enable_interrupts(int_rda);
 enable_interrupts(global);
while(true)
{

set_adc_channel (0);
delay_us (10);
conversion=read_ADC();
conversion=conversion*0.0196;
delay_us (10);
sprintf(dato,"%c%1.2f%1.2f%c",car1,conversion,conv,car2);
puts(dato);
lcd_gotoxy(0,2);
 printf(lcd_putc,dato);
 delay_us(100);
 strcpy(dato,"");
}


}


sábado, 6 de febrero de 2016

Microcontroladores PIC Comunicación Bluetooth Bi direcional

Vídeo que nos enseña como realizar comunicaciones inalambricas  con los microcontroladores PIC mediante el uso de la tecnología  Bluetooth. En el vídeo se enseña el control del microcontroldor mediante el uso de dispositivos móviles .teléfonos y tabletas electrónicas.

Para el control del microconttolador deben descargar las aplicaciones:

RC Bluetooth Control desde Google PLay:



Desde Amazon:


Deben descargar la aplicación Chat Bluetooth:

Desde Google Play:


Desde Amazon:


En el siguiente  vídeo se explica como realizar la programación del microcontrolador PIC:



 El código para programar el PIC es el siguiente:


 //#include <16f877A.h>
#include <18F4550.h>
#device ADC=8
//#fuses HS,nowdt,noprotect,nolvp,nodebug,usbdiv,pll5,cpudiv2,vregen
#fuses HS,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
//#fuses NOWDT,XT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay (clock = 20M )
#use fast_io(c)
#use rs232(baud=9600,bits=8,parity=n,xmit=pin_c6,rcv=pin_c7)
#priority rda,timer1,ad
#include <LCD4x16_2016.c>
//#include <LCD4x16_877A.c>
#byte PUERTO_A=0xf80
#byte PUERTO_B=0xf81
#byte PUERTO_C=0xf82
#byte PUERTO_D=0xf83
#byte PUERTO_E=0xf84


char valor;
int sw=0;
char dato[30]="PIC Rx=";
char mensajeTx [12];


void main ()

{

  Setup_adc_ports(NO_ANALOGS);
  lcd_init();
  set_tris_a(0b00000000);
  set_tris_b(0b00000000);
  set_tris_c(0b10000000);
  set_tris_d(0b00000000);
 
  lcd_init();
 lcd_gotoxy(1,1);
 printf(lcd_putc,"TX/RX Bluetooth");
 output_a(0xFF);
while(true)
{
while ( kbhit())
{
valor=getc();//recibe el dato del pc y lo guarda en valor
sw=1;

}

switch (valor)
{

case 'R':output_bit(PIN_A0,0);
output_bit(PIN_A1,1);
output_bit(PIN_A2,1);

break;
case 'U':output_bit(PIN_A0,1);
output_bit(PIN_A1,0);
output_bit(PIN_A2,1);
break;
case 'L':output_bit(PIN_A0,1);
output_bit(PIN_A1,1);
output_bit(PIN_A2,0);
break;
case 'X':output_bit(PIN_A0,1);
output_bit(PIN_A1,1);
output_bit(PIN_A2,1);
break;


}

if (sw==1)
{
lcd_gotoxy(1,2);
printf(lcd_putc,"%S %c","Recibido=",valor);
sprintf(mensajeTX,"%s %c",dato,valor);
puts(mensajeTx);
sw=0;
}


}


}


miércoles, 27 de enero de 2016

Transmisión Bluetooth Con Micro Controladores

En el siguiente vídeo se  explica como realizar transmisiones remotas desde nuestro teléfono o tablet  hacia un micro controlador mediante el uso de Bluetooth. Para ello debemos descargar la aplicaciòn gratuita RC Bluetooth desde Google Play o Amazon.




Para observar como debemos programar nuestro micro controlador debemos visualizar el siguiente vídeo


Diseño de Generador de Funciones con Micro Controlador

En este tutorial aprenderemos a diseñar un Generado de Funciones mediante el uso de un  micro controlador. El micro controlador a utilizar será el Arduino pero puede ser usado cualquier micro controlador.  Las aplicaciones que se requieren para el proyecto la pueden descargar gratuitamente desde Google Play y Amazon.

Para controlar remotamente el generador de funciones desde nuestro teléfono o tablet  debemos descargar la  aplicación RC Bluetooth Control la cual descargamos desde Google Play:


  La podemos descargar desde Amazon:


Para visualizar las señales generadas podemos usar un osciloscopio, sino lo tenemos podemos convertir nuestra tablet o teléfono en un osciloscopio . Para ello debemos descargar de manera gratuita la aplicación Osciloscopio  desde Google Play:


La podemos descargar desde Amazon:


Una vez que hemos descargado las aplicaciones  e instaladas en nuestros teléfonos y Tablet, podemos visualizar el siguiente vídeo, donde se explica detalladamente el diseño del Generador de Funciones:


El programa para ser cargado en nuestro arduino es el siguiente:

// include the library code:
#include <LiquidCrystal.h>
#include <TinyGPS.h>
//String mensaje,mensaje3;
#include <SoftwareSerial.h>
SoftwareSerial mySerial(11, 12); // RX, TX
char inChar;
int sw=0;
int sine[255];


void setup() {

  
  //Serial.begin(9600);

     pinMode(0, OUTPUT); 
     pinMode(1, OUTPUT); 
     pinMode(2, OUTPUT); 
     pinMode(3, OUTPUT); 
     pinMode(4, OUTPUT);
     pinMode(5, OUTPUT);
     pinMode(6, OUTPUT); 
     pinMode(7, OUTPUT);
     float x; 
     float y; 
     for(int i=0;i<255;i++)
     {
          x=(float)i;
          y=sin((x/255)*2*PI);
          sine[i]=int(y*128)+128;
     }
  mySerial.begin(9600);

}

void loop() { 
  
    while (mySerial.available() > 0)
    {
       inChar =mySerial.read();
       //Serial.println(inChar);
       switch (inChar)
       {
        //Onda Tiangular
        case 'U' :sw=1;
        break;
        //Onda Rampa Poitiva
        case 'E' :sw=2;
        break;
        //Onda Negativa
        case 'R': sw=3;
        break; 
        // OndaSeno
        case 'C': sw=4;
        break;       
       }
       //Serial.println(sw);       
     }

     switch (sw)
     {
       case 1:for (int i=0;i<255;i++) 
     { 
          PORTD=i;
     } 
     for (int i=255;i>0;i--) 
     { 
          PORTD=i;
     }
       break;
       case 2:for (int i=0;i<255;i++) 
     { 
          PORTD=i;
     } 
       break; 
       case 3: for (int i=255;i>0;i--) 
     { 
          PORTD=i;
     }
       break;
        case 4:for (int i=0;i<255;i++) 
     { 
          PORTD=sine[i]; 
          delayMicroseconds(10); 
     }
       break;
       
      
     
     }

}




miércoles, 4 de noviembre de 2015

Programaciòn Avanzada 2015

Diseñar una aplicación en Java  usando NetBeans  que simule una pelota rebotando. Se crea un espacio para  graficar, con resolución  ( 300x300). Se debe dibujar en la parte superior , desde la posición (0,0) hasta la posición (300,0) un rectángulo de ancho 300 y altura  30 que simule una barrera, de igual manera se debe dibujar en la parte inferior de la pantalla un rectángulo que comience en la posición ( 0,275) hasta la posición ( 300,275)  con ancho 300 y altura 25 Se Coloca una esfera de radio 20 en el centro del área para gráficar. Se debe colocar un botón que diga iniciar. Al presionar el botón la pelota debe subir y rebotar hacia bajo, luego rebotar hacia arriba  de manera cíclica. Al rebotar la pelota debe ir de forma aleatoria hacia una nueva posición. La pelota deja de rebotar al salir de la zona  donde se grafica.

El proyecto se debe entregar el día 18 de noviembre,  último día de actividades junto al proyecto del ascensor que debían entregar el día viernes 29 de octubre.