ARDUINO.pptx

Post on 03-Nov-2014

120 views 1 download

Tags:

Transcript of ARDUINO.pptx

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);