Beruflich Dokumente
Kultur Dokumente
Integrantes:
Pia Guadarrama Andhers Natanael
Portillo Villalobos Sabick Fernando
Toro Sandoval David Alejandro
El encoder de cuadratura.
De manera particular, el encoder que se emplea para esta prctica posee un cambio global
de 20 pasos, donde por cada paso se generan tres cambios de flanco.
En la siguiente imagen se muestran los cambios de flanco que pueden existir en un paso
del encoder.
Imagen 2. Cambios de flanco de un encoder incremental.
Descripcin de la prctica.
Para la siguiente prctica se pretende hacer uso de un encoder de cuadratura para medir
longitud, el objetivo principal es crear un odmetro, todo lo anterior a travs de una tarjeta
arduino y un encoder incremental de cuadratura.
Cdigo empleado.
#define EncA 2
#define EncB 3
int i,A=0,B=0,estado=0,Decimal,Enteros;
unsigned int encoder=0, tAnt=0, tAct=0;
char str[512];
void setup() {
pinMode(EncA, INPUT);
pinMode(EncB, INPUT);
attachInterrupt(0, signalA, CHANGE );
attachInterrupt(1, signalB, CHANGE );
Serial.begin(9600);
}
void loop() {
tAct = millis();
if( (tAct-tAnt) >= 100 ){
//noInterrupts();
Enteros = (21*estado)/60;
Decimal = (4*estado)/60;
if(Decimal <10 & Decimal >0 ){ sprintf(str,"Estado=%d Distancia=%d.0%dcm
\n",estado,Enteros,Decimal); }
else if(Decimal <0 & Decimal >-10 ){
Decimal = abs(Decimal);
sprintf(str,"Estado=%d Distancia=%d.0%dcm
\n",estado,Enteros,Decimal);}
else{sprintf(str,"ESTADO=%d Distancia=%d.%dcm
\n",estado,Enteros,Decimal);}
Serial.print(str);
tAnt = tAct;
//interrupts();
}
void signalB(){
if(digitalRead(EncB) == HIGH){
if( digitalRead(EncA) == HIGH) estado=estado;
else estado++;
}
else{
if( digitalRead(EncA) == LOW) estado--;
else estado++;
}
}
void signalA(){
if(digitalRead(EncA) == HIGH){
if( digitalRead(EncB) == HIGH) estado=estado;
else estado--;
}
else{
if( digitalRead(EncB) == LOW) estado++;
else estado--;
}
}
Cdigo.
Conexiones.
En la presente prcticas se ha hecho uso de un tipo de encoder tal y como se muestra a
continuacin.
Imagen 3. Encoder incremental de cuadratura.
Integrantes:
Pia Guadarrama Andhers Natanael
Portillo Villalobos Sabick Fernando
Toro Sandoval David Alejandro
De manera general, el modulo posee una serie de pines a los cuales se deben conectar las etradas
y salidas de la tarjeta de control, as mismo se tienen una cierta cantidad de leds que nos ayudaran
a conocer el estado del sensor. En la siguiente imagen se muestran los elementos del mdulo y se
identifican algunos de estos.
Imagen 9. En la imagen se identifican algunos de los elementos del mdulo.
Es importante mencionar hasta este punto que la fuente de energa para alimentar al mdulo
puede ser por una fuente de alimentacin o bien una pila. Las caractersticas que la fuente externa
y la pila deben tener son las siguientes:
El control de las funciones que el modulo posee se realiza mediante comandos AT, mismos que a
continuacin detallamos.
Comando. Descripcin.
AT Comprueba estado del mdulo.
AT+CPIN=XXXX Introducir el PIN de la SIM. Cambiar XXXX por el PIN.
AT+CREG? Comprueba la conexin a la red.
Realiza una llamada. Sustituir XXXXXXXXX por el n al
ATDXXXXXXX;
que queramos llamar.
ATH Finaliza la llamada.
Configura el modo texto para enviar o recibir
AT+CMGF=1
mensajes. Devuelve > como inductor.
AT+CMGS=XXXXXXXXX N al que vamos a enviar el mensaje.
AT+CLIP=1 Activamos la identificacin de llamada.
Configuramos el mdulo para que muestre los SMS
AT+CNMI=2,2,0,0,0
por el puerto serie.
AT+CGATT=1 Conectamos a la red GPRS.
AT+CSTT=APN,usuario,contrasea Definimos APN. usuario y contrasea
AT+CIICR Activamos el perfil de datos inalmbrico
AT+CIFSR Obtenemos nuestra IP
AT+CIPSTART=TCP,direccionIP,puer Indicamos el tipo de conexin, direccin IP y puerto
to al que realizamos la conexin
Preparamos el envo de datos. Devuelve > como
AT+CIPSEND
inductor.
AT+CIPCLOSE Cerramos la conexin.
AT+CIPSHUT Cierra el contexto PDP del GPRS
AT+CGPSPWR=1 Activar el GPS.
AT+CGPSSTATUS? Comprueba que el GPS ha encontrado la red.
Obtiene los datos del
GPS: Modo,Latitud,Longitud,Altitud,HorarioUTC,Tie
AT+CGPSINF=0
mpo de respuesta,Nmero de
satlites,Velocidad,Curso
para obtener los datos del GPS usando la
especificacin de la NMEA: Horario
AT+CGPSOUT=32 UTC,Estado,Latitud,Longitud,Velocidad en
nudos,ngulo de derrota en grados,Fecha,Variacin
magntica,Datos del Cheksum
AT+CGPSPWR=0 Cerrar el GPS.
Prctica #13-Detectar el doble-tap del sensor ADXL345 para
enviar un mensaje con la informacin adquirida de un puerto.
Descripcin de la prctica.
En esta prctica se pretende generar un mensaje mediante el mdulo de la SIM808, esto se
realizar una vez que el sensor ADXL345 genere un doble-tap
Cdigo empleado.
Conexiones.
A continuacin, se muestran las conexiones necesarias que deben realizarse entre la tarjeta
arduino y la SIM808, relacionando una a una las filas de cada columna.
A continuacin, se muestran las conexiones necesarias que deben realizarse entre la tarjeta
arduino y el sensor ADXL348, relacionando una a una las filas de cada columna.
GND GND
3V3 VCC
3V3 CS
GND SDO
A4 SDA
A5 SCL
Prctica #14-Detectar el doble-tap del sensor ADXL345 para
generar una llamada telefnica.
Descripcin de la prctica.
En esta prctica se pretende generar una llama mediante el mdulo de la SIM808, esto se realizar
una vez que el sensor ADXL345 genere un doble-tap
Cdigo empleado.
Conexiones.
A continuacin, se muestran las conexiones necesarias que deben realizarse entre la tarjeta
arduino y la SIM808, relacionando una a una las filas de cada columna.
A continuacin, se muestran las conexiones necesarias que deben realizarse entre la tarjeta
arduino y el sensor ADXL348, relacionando una a una las filas de cada columna.
GND GND
3V3 VCC
3V3 CS
GND SDO
A4 SDA
A5 SCL
Prctica #15-Leer un SMS para activar una carga a distancia.
Descripcin de la prctica.
La presente prctica consiste en hacer uso del sistema GSM que el microchip SIM808 posee,
manipulando as la recepcin y envi de mensajes de texto. El control del GSM se logra a travs de
comandos AT, todo mediante una tarjeta arduino que a su vez se encarga de procesar los mensajes
que recibe y enva de la SIM.
El objetivo de esta prctica es activar una carga mediante un mensaje sms, si dicho mensaje coincide
con el comando adecuado la carga puede ser activada o desactivada. Particularmente, hemos
elegido como carga el motor de un carrito de control remoto. Los comandos para activar o desactivar
la carga son los siguientes:
Cdigo empleado.
char incoming_char =0; //Variable para guardar los caracteres que enva el SIM900
String mensaje = "";
void setup()
{
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
Serial.println("OK");
delay (1000);
Serial1.print("AT+CMGF=1\r");
delay(1000);
Serial1.print("AT+CNMI=2,2,0,0,0\r");
delay(1000);
}
void loop()
{
if (Serial1.available() > 0)
{
incoming_char = Serial1.read();
mensaje = mensaje + incoming_char;
Serial.print(incoming_char);
if ( mensaje.indexOf("on_motor_R") >= 0 ){
digitalWrite(7,HIGH) ;
digitalWrite(8,LOW) ;
mensaje = "";
}
else if ( mensaje.indexOf("on_motor_L") >= 0 ){
digitalWrite(7,LOW) ;
digitalWrite(8,HIGH) ;
mensaje = "";
}
else if ( mensaje.indexOf("off_motor") >= 0 ){
digitalWrite(7,LOW) ;
digitalWrite(8,LOW) ;
mensaje = "";
}
else {}
}
}
Conexiones.
A continuacin, se muestran las conexiones necesarias que deben realizarse entre la tarjeta
arduino y la SIM808, relacionando una a una las filas de cada columna.
Cdigo empleado.
String Gps_Inf = "" , Latitud = "" , Longitud = "" , sms_Receptor="" ;
char SMS;
void setup() {
Serial.begin(9600);
Serial1.begin(9600);
void loop() {
if (Serial1.available() > 0)
{
SMS = Serial1.read();
sms_Receptor = sms_Receptor + SMS ;
Serial.print(SMS); //Mostramos el caracter en el monitor serie
if ( sms_Receptor.indexOf("Ubicacion") >= 0 ){
GPS();
SMS_Enviar( Latitud + " " + Longitud );
sms_Receptor = "";
SMS = 0;
}
else {}
}
}
void SMS_Enviar(String Mensaje){
Serial1.print("AT+CMGF=1\r"); //Configura el modo texto para enviar o recibir
mensajes
delay(1000);
Serial1.print("AT+CMGS=\"+525536481228\"\r");
delay(1000);
Serial1.print(Mensaje);
delay(1000);
Serial1.write(0x1A); //Equivalent to sending Ctrl+Z
}
void GPS(){
Serial1.print("AT+CMGF=0\r");
delay(1000);
Gps_Inf="";
Serial1.println("AT+CGNSPWR=1");
delay(100);
Serial1.println("AT+CGPSINF=0");
delay(5);
Conexiones.
A continuacin, se muestran las conexiones necesarias que deben realizarse entre la tarjeta
arduino y la SIM808, relacionando una a una las filas de cada columna.
Integrantes:
Pia Guadarrama Andhers Natanael
Portillo Villalobos Sabick Fernando
Toro Sandoval David Alejandro
Justo despus de enviar este ltimo mensaje el carrito se orientar y trasladar hacia la
nueva ubicacin.
Cdigo empleado.
Conexiones.
A continuacin, se muestran las conexiones necesarias entre la tarjeta arduino, la SIM808
y el sensor GY88 relacionando una a una las filas de cada columna.
Resultados.
A continuacin, se muestran algunas imgenes del carrito controlado mediante GPS.
Tabla 12. Carro ensamblado, se puede ver como se ha montado el mdulo de la SIM808.