arduino.pptx
TRANSCRIPT
ARDUINO
Introducción a
M. En C. Bella Citlali Martínez Seis
¿Qué es Arduino?Es una plataforma de trabajo
◦Basado en el microcontrolados (AVR) y puertos de E/S
◦Entorno de desarrolloTiene su lenguaje: ProcessingEs Hw Open Source
¿Para qué sirve Arduino?Sensar el medio ambiente a
través de variedad de sensoresControlar luces, motores y
diversos actuadores
ATMEGA328 bootloaderSi se modifican
instrucciones afecta el programa de usuario
Se autoprogramaComo si hubieran
2 micros:◦ Uno que programa◦ Uno que es
programado
CaracterísticasMicrocontrolador: ATmega328Voltaje de operación: 5VEntrada V (recomendado): 7-12VEntrada V (limits): 6-20VPin digital: 14 (6 PWM output)Pin analógicos: 6Memoria flash: 32 KbSRAM: 2k
Características (2)
𝐼 2𝐶
Entorno de desarrollo Verificar (compilar) Parar Upload (cargar al Arduino) Monitor Serial
Código en processingsetup
◦Ese método (función) solo se ejecuta una vez al iniciar
loop◦Este método es un ciclo infinito
Salida DigitalEn setup
◦Inicializar el pin como de salida pinMode(numDePin, OUTPUT);
En loop◦Encender el LED
digitalWrite(numDePin, HIGH);
◦Apagar el LED digitalWrite(numDePin, LOW);
Blink
Encender 8 pins
Salida AnalógicaEn setup
◦Inicializar el pin como de salida pinMode(numDePin, OUTPUT);
En loop analogWrite(numDePin, valor);
Valor: valores ente 0 y 255
Ejemplo
Salida al SerialPara mandar datos del Arduino al
SerialEn setup
◦Serial.begin(9600);En loop
◦Serial.print(valor);
Entrada AnalógicaEn setupEn loop
valor=analogRead(pin);//valor es ente 0 y 255
Salida a serial con entrada analógica
Ejemplos de Salida Serial Serial.print(78) imprime "78" Serial.print(1.23456) imprime "1.23" Serial.print(byte(78)) imprime "N" (cuyo código
ASCII es 78) Serial.print('N') imprime "N" Serial.print("Hello world.") imprime "Hello world." Serial.print(78, BYTE) imprime "N" Serial.print(78, BIN) imprime "1001110" Serial.print(78, OCT) imprime "116" Serial.print(78, DEC) imprime "78" Serial.print(78, HEX) imprime "4E" Serial.println(1.23456, 0) imprime "1" Serial.println(1.23456, 2) imprime "1.23"
Entrada desde SerialPara recibir datos desde el serial
al ArduinoEn setup
◦Serial.begin(9600);En loop
◦Serial.write(valor); Valor:
un valor para enviar como un solo byte una cadena 'string' para enviar como una serie
de bytes
PUERTO SERIE EN C
SerialUn puerto serie, puerto serial o puerto de
comunicación COM (también llamados RS-232) es una interfaz de comunicaciones de datos digitales donde la información es transmitida bit a bit enviando un solo bit a la vez, en contraste con el puerto paralelo que envía varios bits simultáneamente. Se denomina “serial” porque el puerto serie “serializa” los datos. Esto quiere decir que toma un byte de datos y transmite los 8 bits del byte de uno en uno.
Serial (2)El símbolo del puerto es:
El puerto serie puede ser un conector de 25 o de 9 pines.
Serial de 9 PinesNombr
eDescripción Sentido Pin
TXD Transmit Data Salida 3RXD Receive Data Entrada 2RST Request to send(Reconoce al modem
que UART está lista para intercambiar datos)
Salida 7
CTS Clear to Send. (cuando el modem está listo para el intercambio)
Entrada 8
DTR Data Terminal Ready Salida 4DSR Data Ready State (UART establece el
vínculo)Entrada 6
DCD Data Carrier Detected. Se activa en caso de un acarreo
Entrada 1
RI Ring Indicator. Se activa cuando el modem detecta una señal ring del PSTN
Entrada 9
GND Masa 5
Definición del puertoSe debe de definir el puerto
pasado en la dirección:
◦COM1 0x3F8◦COM2 0x2F8◦COM3 0x3E8◦COM4 0x2E8
Configuración del puertoBioscom Bios serial Significado
0x020x03
_COM_CHR7_COM_CHR8
7 data bits8 data bits
0x000x04
_COM_STOP1_COM_STOP2
1 stop bit2 stop bits
0x000x080X10
_COM_NOPARITY_COM_ODDPARITY_COM_EVENPARITY
No parityOdd parityEven parity
0x000x200x400x600x800xA00xC00xE0
_COM_110_COM_150_COM_300_COM_600_COM_1200_COM_2400_COM_4800_COM_9600
110 baud150 baud300 baud600 baud1200 baud2400 baud4800 baud9600 baud
Usando librería… (abrir puerto) HANDLE OpenSerialPort(
char *psPort,DWORD dwBaudRate, BYTE dwByteSize,BYTE bParity,BYTE bStopBits, DWORD Timeout);
HANDLE hPort = OpenSerialPort("COM3",CBR_9600,8,NOPARITY,ONESTOPBIT,5000);
Usando librería…Cerrar Puerto
◦BOOL CloseSerialPort(HANDLE hPort);
Enviar Datos◦BOOL SerialSendByte(HANDLE hPort,
BYTE byte); Recibir Datos
◦BOOL SerialReceiveByte(HANDLE hPort, BYTE *pbyte, BOOL *PTimeout);