Arduino en español
Circuitos con Arduino - Juan Antonio Villalpando
-- Tutorial de iniciación a Arduino --
Volver al índice del tutorial
____________________________
- Pines.
arduino uno pin.pdf
_______________________________________
- Pines DIGITALES de ENTRADAS y SALIDAS. Pines ANALÓGICOS de ENTRADAS.
- Los Pines DIGITALES son 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 y 13
- Los Pines 0 y 1 solo utilizarlos para transmisiones serie TX/RX
- Los Pines ANALÓGICOS son A0, A1, A2, A3, A4 y A5.
- Como veremos al final de esta página, las ENTRADAS ANALÓGICAS también pueden funcionar como terminales DIGITALES (pines: 14, 15, 16, 17, 18 y 19).
_______________________________________
- Pines DIGITALES como SALIDAS PWM.
- Los Pines DIGITALES 3, 5, 6, 7, 9, 10 y 11 se pueden utilizar como salidas PWM.
_______________________________________
- Conexión con el bus I2C.
- Los Pines ANALÓGICOS A5 y A5 se pueden utilizar como Bus I2C
- El Arduino UNO R3, tiene otros dos pines para el mismo Bus I2C.
_______________________________________
- Conexión para transmisión en serie. Bluetooth.
- TX y RX se utiliza para conexión serie, por ejemplo Bluetooth.
- Arduino también utiliza TX y Rx para cargar el programa, por eso parpaden en la plaquita los LED TX/RX cuando cargamos el programa.
- Cuando vayamos a cargar un programa, debemos quitar la alimentación al Bluetooth.
- Normalmente los terminarles 0 y 1 se utilizan para RX y TX, pero utilizando una librería llamada <Serial> se pueden utilizar otros terminales distintos.
(Ver tutoriales: http://kio4.com/appinventor/index.htm#bluetooth)
_______________________________________
- Conexión para transmisión por SPI.
_______________________________________
_______________________________________
_______________________________________
_______________________________________
- Distintas formas de comunicarse el Arduino con otro Dispositivo.
- Comunicación por Puerto Serie.
- Utiliza las conexiones TX (Transmitir) y RX (Recibir). Pines 0 y 1.
- Se usa cuando se carga el programa desde el ordenador al Arduino, por eso parpadean un par de LED en la placa.
- Es una conexión asíncrona (sin reloj). Los relojes del emisor y transmisor son distintos, pero deben tener la misma frecuencia.
- Si establemos 9600 baudios (bits por segundos) en el dispositivo TX y RX, los relojes funcionarán a la misma frecuencia.
-
Puede enviar hasta 230.400 bits por segundo.
- Para conocer dónde comienza cada byte, se debe enviar un bit de start o otro de stop.
- Solo se puede conectar un dispositivo.
- Se utiliza también con el módulo Bluetooth.
- Solo necesita dos cables. (Además de alimentación y Gnd).
- Utiliza una circuitería
UART (Universal Asynchronous Receiver / Transmitter).
- Comunicación por
Serial Peripheral Interface (SPI).
- Es una comunicación síncrona, el reloj es común. El reloj está en el Master.
- Necesita tres cables. (Además de alimentación y Gnd).
- Puede trabajar con
10.000.000 bits per segundo.
- Los circuitos son más sencillos que los UART.
- En el Arduino se utiliza para cargar el Bootloader (arrancador) y para pasar un programa de un Arduino a otro.
- Este tipo de conexión podría tener más terminales para poder gestionar varios dispositivos esclavos.
- En el Arduino UNO también puede actuar como SPI los terminales digitales 10, 11, 12 y 13.
- Comunicación por I2C.
- Tiene solo dos conexiones (Además de la alimentación).
- El Master dispone de un reloj de sincronización.
- La velocidad de comunicación entre
100kHz y 400kHz.
- Se conecta una resistencia de 4k7 entre estos dos cables y la alimentación positiva.
- En el Arduino los terminales para este bus con el A4 y el A5 (El Arduino UNO R3, tiene otras dos pero son del mismo bus)
- Se puede conectar un Master a varios Slaves.
- Se utiliza con muchos módulos como pantallas LCD, pantallas Nokia, Emisora de FM, Sensores,... para conectar dos o más Arduinos.
- Documentos explicativos:
https://learn.sparkfun.com/tutorials/serial-peripheral-interface-spi
https://learn.sparkfun.com/tutorials/i2c
_______________________________________
_______________________________________
_______________________________________
_______________________________________
_______________________________________
- Puertos en el Arduino
- Varios conjunto de terminales del Arduino son puertos, se pueden utilizar todos a la vez.
- En PORTD estoy enviando un Byte, por ejempo el 148 en binario es 10010100
- De esta forma estoy enviando a los Pin del 0 al 7 un nivel alto o bajo según el bit que le corresponda.
|
void setup()
{
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}
void loop()
{
for (int i=0;i<255;i++)
{
PORTD=i;
}
for (int i=255;i>0;i--)
{
PORTD=i
}
}
|
_______________________________________
- Los terminales de ENTRADAS ANALÓGICAS utilizados como DIGITALES.
- Los terminales A0, A1, A2, A3, A4 y A5 se pueden utilizar como entradas y salidas digitales.
- Se denominan 14, 15, 16, 17, 18 y 19.
- En este ejemplo lo utilizamos como salidas digitales.
- Ponemos un LED en cada uno de esos terminales y cargamos este código:
|
void setup()
{
pinMode(14, OUTPUT);
pinMode(15, OUTPUT);
pinMode(16, OUTPUT);
pinMode(17, OUTPUT);
pinMode(18, OUTPUT);
pinMode(19, OUTPUT);
}
void loop()
{
digitalWrite(14, HIGH); digitalWrite(15, HIGH); digitalWrite(16, HIGH); digitalWrite(17, HIGH); digitalWrite(18, HIGH); digitalWrite(19, HIGH); delay(1000);
digitalWrite(14, LOW); digitalWrite(15, LOW); digitalWrite(16, LOW); digitalWrite(17, LOW); digitalWrite(18, LOW); digitalWrite(19, LOW); delay(1000);
}
|
_______________________________________
- Patillaje del Arduino.
- De https://arduino.stackexchange.com/questions/14407/use-all-pins-as-digital-i-o
- Observa que los terminales analógicas A0...A5 también se pueden utilizar como digitales:
digitalWrite(14, HIGH);
- Tiene dos entradas de INTerrrupción, eso lo veremos en el tutorial:
18.- Interrupciones.
- Observa abajo el conector ICSP, sus mismos terminales también están en 10, 11, 12 y 13 (SS, MOSI, MISO, SCK)
- Fíjate los tres grupos de puertos PB, PC y PD.
- Consulta estos tutoriales
1.- http://www.auctoris.co.uk/2011/05/25/arduino-function-generator-part-2/
2.- http://panamahitek.com/registro-port-puerto/
3.- http://panamahitek.com/mapear-puertos-de-arduino/
4.- Buen tutorial sobre Arduino y electrónica de Antony García: http://panamahitek.com/category/arduino/
________________________________
|