domingo, 24 de abril de 2016

Electric Circuits Pro 2016



He diseñado la aplicación Circuitos Eléctricos PRO las cuales pueden descargar de manera Gratuita en la Play Store de Google:
Mediante la aplicación Circuitos Eléctricos Pro pueden aprender los conceptos fundamentales de circuitos eléctricos: resistencias, condensadores, bobinas, circuitos en serie, circuitos en paralelo. es una aplicación diseñada en el idioma Español e Ingles...Muy útil para los estudiantes de bachillerato, escuelas técnicas, técnicos superiores y estudiantes de ingeniería... Dispone de materiales de teoría sobre los fundamentos de la electricidad, simuladores de circuitos eléctricos y un sin fin de recursos...quieres ver como funciona...

viernes, 18 de marzo de 2016

Aprendiendo el Alfabeto con Alejandro


Aprendiendo el Alfabeto con Alejandro es una forma sencilla y entretenida para que los niños aprendan el alfabeto en español. Mediante esta aplicación se desarrolla el pensamiento ubicuo en los niños.
Aprendiendo el Alfabeto con Alejandro es una forma entretenida de aprender las letras del alfabeto en español, mediante la pronunciación de cada una de las letras asociadas a una palabra y a una figura que atrae la atención de los niños. Mediante esta aplicación los niños aprenden a pronunciar las letras del alfabeto escuchando como lo pronuncia correctamente otro niño.
Es una aplicación colorida con una ambiente musical que motiva el aprendizaje en los niños…



La puedes descargar desde Google Play:


La puedes descargar desde  Amazon:

Bluetooth Pro


Bluetooth pro es una nueva aplicación que permite la comunicación de su dispositivo Android con cualquier microcontrolador o dispositivo electrónico.
Recibe y transmite mensaje como un Chat entre su dispositivo Android y su dispositivo electrónico. Bluetooth Pro puede leer los mensajes que envías. Bluetooth pro permite enviar y recibir caracteres alfabéticos y numéricos para realizar el control de su dispositivo electrónicos y microcontroladores a través de la comunicación Bluetooth. 
Los mensajes enviados desde el microcontrolador deben terminar con salto de línea ’\n’. La aplicación Bluetooth Pro es muy fácil de utilizar.



La puedes descargar desde Google Play:


La puedes descargar desde  Amazon:



para probarla utilizando un sistema arduino puedes probar el siguiente código:

#include <LiquidCrystal.h>
//String mensaje,mensaje3;
#include <SoftwareSerial.h>
SoftwareSerial mySerial(11, 12); // RX, TX
LiquidCrystal lcd(8, 9, 4,5, 6,7);
char inChar;
String dato="";
boolean sw=false;
int ranNum;
 int sw2=100;
void setup()
{
  
  // put your setup code here, to run once:
  lcd.begin(20, 4);
  // Print a message to the LCD.
  lcd.setCursor(0,0);
  lcd.print("RX/TX Bluetooth");
   mySerial.begin(9600);
  


}

void loop ()
{
   while (mySerial.available() > 0)
    {
   inChar= mySerial.read();
   dato=dato+inChar;
   lcd.setCursor(0,1);
   //lcd.print("Recibiendo=");
   //lcd.setCursor(13,1);
    lcd.print(dato);
    sw=true;
    
    
    }
    if (sw==true)
    {
     
      
      randomSeed(millis());
      sw2=random(0,5);
   
      
      sw=false;
      mySerial.println("excelente Comunicacion con Arduino");
      delay(200);
    }
    dato="";
}





miércoles, 24 de febrero de 2016

Micro Controladores PIC. Modulación PWM. Control Remoto de Motor

Control de Velocidad  y de Giro de un Motor de manera remota mediante el uso de un Micro controlador PIC  haciendo uso de la modulación PWM



Para controlar el Motor de manera remota pueden descargar la aplicaron  RC Bluetooth Control desde:

Google PLay:


Amazon:


Para realizar el control del motor mediante comando de voz pueden descargar  la aplicación RC Bluetooth PRO desde :

Google Play:


Amazon:


Pueden Descargar el código para programar el PIC :


//#include <16f877A.h>
#include <18F4550.h>
#device ADC=8
//#fuses HS,nowdt,noprotect,nolvp,nodebug,usbdiv,pll5,cpudiv2,vregen

// CONFIGURACIÓN DE LOS FUSES PAR EL ROGAMADO Y VELOCIDAD DEL CRISRTAL
#fuses HS,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
//#fuses NOWDT,XT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT

// CONFIGURACIÒN VELOCIDAD DL RELOJ DEL MICROCONTROLADO
#use delay (clock = 20M )
#use fast_io(c)
// CONFIGURACIÓN VELOCIDAD DE TRANSMISIÓN SRAL Y OS PINESD TXXXY RX
#use rs232(baud=9600,bits=8,parity=n,xmit=pin_c6,rcv=pin_c7)

// PRIORIDAD A LAS INTERRUPCIONES
#priority rda,timer1,ad
// BIBLOTECA MODIFCADA DE LCD.H PARA QUE TRABAJE CONEL PUERTO D
#include <LCD4x16_2016.c>
//#include <LCD4x16_877A.c>

// CONFIGURACION DE LOS PUERTOS
#byte PUERTO_A=0xf80
#byte PUERTO_B=0xf81
#byte PUERTO_C=0xf82
#byte PUERTO_D=0xf83
#byte PUERTO_E=0xf84

// VARIABLE QUE CAPTURA EL CARACTER QUE SE ENVÍA POR TRANSMISION SERIAL DESDE EL TELEFONO O TABLET
char valor='$';
// VARIABLE QUE INDICA SI SE RECIBIO UN CARACTER SW=1 Y SI NO SE RECIBIO CARACTERES SW=0
int sw=0;
// STRING DEL MENSAJE DEL PIC
char dato[30]="PIC Rx=";
// STRING DEL MENSAJE DEL PIC QUE SE TRANSMITEPOR EL PUERTO SERIAL
char mensajeTx [12];
// VARIABLE PARA LA VELOCIDAD DEL MOTOR
INT velMotor=255;
// VARIABLES SENTIDO DEL GIRO
int izqMotor=0,derMotor=0;

//INTERRUPCION SI SE RECIBE POR EL PUERTO SERIAL

#INT_RDA //RS232 receive data available
void  recibido()
{
// CAPTURA EL CARATCTER QUE SE RECIBE POR TRANSMISION SERIAL
while ( kbhit())
{
valor=getc();//recibe el dato del pc y lo guarda en valor
sw=1;

}
}

void main ()

{
int i;
  Setup_adc_ports(NO_ANALOGS);
  lcd_init();
  set_tris_a(0b00000000);
  set_tris_b(0b00000000);
  set_tris_c(0b10000000);
  set_tris_d(0b00000000);
  output_low(PIN_C2); //CCP1
  setup_ccp1(CCP_PWM);
  setup_ccp2(CCP_PWM);
  setup_timer_2(T2_DIV_BY_1, 255, 1);
  lcd_init();
 lcd_gotoxy(1,1);
 printf(lcd_putc,"Modulacion PWM");
 output_a(0xFF);
 enable_interrupts(GLOBAL);
  enable_interrupts(INT_RDA);
 
  // Apago los LED conevatados al Puerto A
  output_a (255);
while(true)
{



switch(valor)
{
//SELECCIONAMOS LA VELOCIDAD DE GIRO DEL MOTOR

           case '9': velMotor=255;
           break;
           case '8': velMotor=226;
           break;
           case '7': velMotor=199;
           break;
           case '6': velMotor=170;
           break;
           case '5': velMotor=142;
           break;
           case '4': velMotor=114;
           break;
           case '3': velMotor=85;
           break;
           case '2': velMotor=57;
           break;
           case '1': velMotor=28;
           break;
           case '0': velMotor=0;
           break;
           // SELECCIONAMOS EL SENTIDO DE GIRO
case 'R': izqMotor=0;
         derMotor=velMotor;
         output_bit(PIN_A1,0);
         output_bit(PIN_A2,255);
         output_bit(PIN_A3,255);
           break;

case 'L': izqMotor=velMotor;
         derMotor=0;
         output_bit(PIN_A1,255);
         output_bit(PIN_A2,0);
         output_bit(PIN_A3,255);
           break;
           // SELECCIONAMOS APAGAR EL MOTOR
case 'X': izqMotor=0;
         derMotor=0;
         output_bit(PIN_A1,255);
         output_bit(PIN_A2,255);
         output_bit(PIN_A3,0);
           break;
case 'x': izqMotor=0;
         derMotor=0;
         output_bit(PIN_A1,255);
         output_bit(PIN_A2,255);
         output_bit(PIN_A3,0);
           break;
}


//EL MOTOE GIRA EN FUNCION DEL CARACTER RECIBIDO    
set_pwm2_duty(izqMotor);
set_pwm1_duty(derMotor);

// SE IMPRIME EL CARACTER RECIBIDO EN PANTALLA Y SE TRANSMITE UN MENSAJE POR EL PUERTO SERIAL

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



 // SE INICIALIZA LA VARIABLE RECIBIDA    

     
     

}


}