Académique Documents
Professionnel Documents
Culture Documents
C (entradas analgicas)
Los registros DDR y PORT pueden ser ambos, escritos y ledos. El registro PIN
corresponde al estado de las entradas as que solo puede ser
ledo. El PORTD mapea los pines digitales del 0 al 7
o
El PORTB mapea los pines digitales del 8 al 13. Se debe recordar que Los bits
altos (6 & 7) estn mapeados a los pines del cristal de cuarzo y no pueden ser
usados. Estos son solamente accesibles en el Arduino Mini.
o
Cada bit de estos registros corresponden con un solo pin; por ejemplo el bit
menos significativo de los registros DDRB, PORTB, y PINB hace referencia al
pin PB0 (pin digital 8)
Normalmente antes para declarar un pin lo hacamos de la siguiente manera:
void setup(){
Serial.begin(9600);
pinMode(2,INPUT);
pinMode(3,OUTPUT);
}
Entonces si quisiramos declarar 7 pines (desde el digital 0 al digital 7),
tendramos que repetirpinMode 7 veces. Al igual que escribir tendramos que
poner digitalWrite(pin,estado) pin 0 estado alto, pin 1 estado bajo, etc.
Al utilizar Registros PORT (Puerto) tenemos la ventaja de que con solo una
instruccin podemos declarar el pin como entrada o salida y tambin
podemos escribir, si lo queremos, como estado HIGH o LOW.
Para controlar cualquiera de los tres puertos, debemos usar dos instrucciones.
o
Dato Importante:
0 = INPUT
DDRX = B11111110;
donde X es la letra del puerto a usar (BCD). Sin embargo si queremos tener
comunicacin Serial tendramos que hacer esto:
DDRX = DDRX | B11111100;
Esta manera es ms segura ya que configura los pines del 2 al 7 como salidas
sin cambiar los pines 0 y 1, que como mencionamos son RX y TX Para tener
ms referencia de los operadores bit a bit tipo AND, visita el siguiente post de
Arduino:
o
Nmero a
marcar
Ubicacin
del pin en
Arduino.
o
Ejemplo:
1 =HIGH
0 = LOW
PORTX= B11111110;
En este ejemplo los pines del 1 al 7 permanecern encendidos (HIGH) y el pin 0
LOW.Veamos un ejemplo aplicando estos conceptos:
En este ejemplo lograremos que durante dos segundos todos los leds
enciendan, durante dos segundos ms alumbren los impares y durante dos
ms todos se apaguen. Veamos:
Configuracin Utilizada:
Ventajas:
o
Puede que puedas cambiar los pines de estado muy rpido, en fracciones
de microsegundos. Las funciones digitalRead() y digitalWrite() son cada
una cerca de una docena de lneas de cdigo, lo cual al ser compilado se
convierte en unas cuantas instrucciones mquina.
Se puede utilizar los registros de configuracin de puertos para configurar los terminales de los
puertos ya sea como entradas o salidas, en los PIC estos registros son los TRIS, donde
un 0representa una salida y un 1 una configuracin como entrada.
Por ejemplo si quiero configurar los primeros 4 bits del puerto B como salida y los 4 ltimos bits del
puerto B como entradas hariamos lo siguiente:
Hexadecimal
TRISB = 240
Decimal
Para escribir los datos en el puerto utilizamos los registros PORT, como ejemplo si el
puerto B esta configurado como salida y queremos colocarlo todo en alto haramos lo siguiente.
Hexadecimal
PORTB = 255
Decimal
void setup(){
//configuro puerto B como salida
TRISB=0x00;
}
void loop(){
//Coloco en alto todos los terminales del puerto B
PORTB=0xFF;
delay(1000);
//Coloco en bajo todos los terminales del puerto B
PORTB=0x00;
delay(1000);
}