You are on page 1of 30

Introduccin a

ARDUINO

M. En C. Bella Citlali Martnez Seis

Qu es Arduino?

Es una plataforma de trabajo


Basado en el microcontrolados (AVR) y puertos de E/S Entorno de desarrollo

Tiene su lenguaje: Processing Es Hw Open Source

Para qu sirve Arduino?


Sensar el medio ambiente a travs de variedad de sensores Controlar luces, motores y diversos actuadores

ATMEGA328 bootloader
Si se modifican instrucciones afecta el programa de usuario Se autoprograma Como si hubieran 2 micros:

Uno que programa Uno que es programado

Caractersticas
Microcontrolador: ATmega328 Voltaje de operacin: 5V Entrada V (recomendado): 7-12V Entrada V (limits): 6-20V Pin digital: 14 (6 PWM output) Pin analgicos: 6 Memoria flash: 32 Kb SRAM: 2k

Caractersticas (2)

Entorno de desarrollo

Verificar (compilar) Parar Upload (cargar al Arduino) Monitor Serial

Cdigo en processing

setup
Ese mtodo (funcin) solo se ejecuta una vez al iniciar

loop
Este mtodo es un ciclo infinito

Salida Digital

En 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 Analgica

En setup
Inicializar el pin como de salida
pinMode(numDePin, OUTPUT);

En loop
analogWrite(numDePin, valor);
Valor: valores ente 0 y 255

Ejemplo

Salida al Serial
Para mandar datos del Arduino al Serial En setup

Serial.begin(9600);

En loop
Serial.print(valor);

Entrada Analgica
En setup En loop

valor=analogRead(pin); //valor es ente 0 y 255

Salida a serial con entrada analgica

Ejemplos de Salida Serial


Serial.print(78) imprime "78" Serial.print(1.23456) imprime "1.23" Serial.print(byte(78)) imprime "N" (cuyo cdigo 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 Serial


Para recibir datos desde el serial al Arduino En 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

Serial

Un puerto serie, puerto serial o puerto de comunicacin COM (tambin llamados RS-232) es una interfaz de comunicaciones de datos digitales donde la informacin es transmitida bit a bit enviando un solo bit a la vez, en contraste con el puerto paralelo que enva varios bits simultneamente. 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 smbolo del puerto es:

El puerto serie puede ser un conector de 25 o de 9 pines.

Serial de 9 Pines
Nombre TXD RXD RST CTS DTR DSR Descripcin Transmit Data Receive Data Request to send(Reconoce al modem que UART est lista para intercambiar datos) Clear to Send. (cuando el modem est listo para el intercambio) Data Terminal Ready Data Ready State (UART establece el vnculo) Data Carrier Detected. Se activa en caso de un acarreo Ring Indicator. Se activa cuando el modem detecta una seal ring del PSTN Sentido Salida Entrada Salida Entrada Salida Entrada Pin 3 2 7 8 4 6

DCD
RI GND

Entrada
Entrada Masa

1
9 5

Definicin del puerto

Se debe de definir el puerto pasado en la direccin:


COM1 0x3F8 COM2 0x2F8 COM3 0x3E8 COM4 0x2E8

Configuracin del puerto


Bioscom
0x02 0x03 0x00 0x04 0x00 0x08 0X10 0x00 0x20 0x40 0x60 0x80 0xA0 0xC0 0xE0

Bios serial
_COM_CHR7 _COM_CHR8 _COM_STOP1 _COM_STOP2 _COM_NOPARITY _COM_ODDPARITY _COM_EVENPARITY _COM_110 _COM_150 _COM_300 _COM_600 _COM_1200 _COM_2400 _COM_4800 _COM_9600

Significado 7 data bits 8 data bits 1 stop bit 2 stop bits No parity Odd parity Even parity 110 baud 150 baud 300 baud 600 baud 1200 baud 2400 baud 4800 baud 9600 baud

Usando librera (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 librera

Cerrar Puerto
BOOL CloseSerialPort(HANDLE hPort);

Enviar Datos
BOOL SerialSendByte(HANDLE hPort, BYTE byte);

Recibir Datos
BOOL SerialReceiveByte(HANDLE hPort, BYTE *pbyte, BOOL *PTimeout);

You might also like