You are on page 1of 29

Tipos de Entradas y su funcion

 E/S Digitales
pinMode(pin,modo)
(INPUT) o (OUTPUT).
Ejm: pinMode(Pin13, OUTPUT)
digitalWrite(pin,valor)
HIGH (5V) o LOW (0V)
Ejm: digitalWrite(Pin13 , HIGH);
digitalRead(pin)
HIGH o LOW.
Ejm: val = digitalRead(Pin13);

 E/S Analógicas
analogRead(pin)
Ejm: val = analogRead(Pin3)
analogWrite(pin,valor)
val = analogRead(analogPin);
analogWrite(ledPin, val / 4);
Serial.begin(speed)
Establece la velocidad de datos en bits por segundo (baudios) para la
transmisión de datos en serie. Para comunicarse con el ordenador, utilice
una de estas velocidades: 300, 1200, 2400, 4800, 9600, 14400, 19200,
28800, 38400, 57600 o 115200.
Ejm: Serial.begin(9600);
Serial.read()
Lee los datos entrantes del puerto serie.
Ejm; Byte = Serial.read();
Serial.print(val,[format])
Ejm: Serial.print(78) imprime "78"
Serial.print('N') imprime "N"
Serial.print(78, BYTE) imprime "N"
Serial.print(78, DEC) imprime "78”
Serial.println(1.23456, 0) imprime "1.23”
Serial.println(1.23456, 2) imprime "1.23"
Serial.println(val,[format])
Ejm:Serial.println(analogValue); // imprime como ASCII
decimal
Serial.println(analogValue, HEX);// imprime como ASCII
hexadecimal
Serial.available()
Devuelve el número de bytes (caracteres) disponibles para ser leídos por
el puerto serie. Se refiere a datos ya recibidos y disponibles en el buffer
de recepción del puerto (que tiene una capacidad de 128 bytes).
if (Serial.available() > 0)
{
//realiza la lectura del puerto serie
}
SENSORES DIGITALES

 Botones
 Switch
 SensorHall
 Optointerruptor
SENSORES ANALÓGICOS

• Potenciometro
• Celdas fotoresistivas
• Sensor de temperatura
• Zumbador pizoelectrónico
ACTUADORES DIGITALES

• Leds
• display
ACTUADORES ANALÓGICO

• Leds
• Zumbador piezoelectrónico
Circuitos, representación grafica
En la sesión anterior programamos el LED conectado al pin 13 de nuestro Arduino. Hoy
vamos a duplicar este circuito en el exterior montándolo desde el principio con
componentes discretos. Su esquema eléctrico sería:

Vemos a la izquierda el símbolo del diodo LED que es emisor de luz y por eso tiene
esas flechitas salientes para indicarlo (LED viene del inglés Light Emitting Diode, o diodo
emisor de luz).
La resistencia se representa por ese segundo símbolo indicando un nombre R1 y su valor
330Ω.
void setup() {
int i = 0 ; // Inicializamos la variable i como un entero
for ( i = 6 ; i < 14 ; i++) pinMode( i , OUTPUT) ;
}

void loop() {
int i = 0 ; // Inicializamos la variable i como un entero
for ( i = 6 ; i < 14 ; i++) {
digitalWrite( i , HIGH) ;
delay (500) ;
digitalWrite( i , LOW);
delay (500) ;
}

}
Comunicación con el puerto Serial.
Arduino dispone de una librería serie incluida llamada Serial, que nos permite envía
información al PC y para usarla simplemente tenemos que pedirle en nuestro setup()
que la incluya.

Serial.begin( velocidad );

•Nótese que Serial tiene la S mayúsculas y que C++ diferencia entre mayúsculas y minúsculas.

En C++ tenemos que expresar las operaciones matemáticas en una sola línea y
utilizar paréntesis para garantizar que se opera como necesitamos. Vamos con
algunos ejemplos:
Operación y resultado Serial (Consola).

void setup()
{
Serial.begin(9600) ; // Inicializa el Puerto serie
}
void loop()
{
int i = 27 ; //El número en cuestión
if ( i % 2 == 0)
Serial.println("Es par.") ;
else
Serial.println("Es impar");
}
Manejo de Cadena (String)

void setup()
{
Serial.begin(9600) ; // Inicializa el Puerto serie
}
void loop() void loop()
{ {
String a = "hola " ;
Serial.print("Buenos ") ; String b = "a todos." ;
Serial.print("Dias ") ; Serial.println( a + b);
Serial.println("a todos.") ; }

}
void loop()
{
int resultado = 25 ;
String s = "El resultado es: " ;
Serial.println( s + String( resultado ));
}
Uso de funciones
bool Primo( int n)
{
for ( int i = 2 ; i <n ; i++)
{
if ( n % i == 0) // Si el resto es 0 entonces es divisible.
{
Serial.println ( String(n) +" es divisible por: " + String(i)) ;
return(false) ;
}
}
return (true) ; void loop() // Prog_8_1
}
{
int x = 427 ; // El número a probar
bool p = Primo(x);
if (p )
Serial.print( String(x) + " Es primo.") ;
else
Serial.print( String(x) + " No es primo." ) ;
}
int pinLDR = 0; if(valorLDR >= 612)
int valorLDR = 0; {
digitalWrite(pinLed1, HIGH);
void setup() {
}
Serial.begin(9600); else
{
} digitalWrite(pinLed1, LOW);
void loop() {
}
valorLDR = analogRead(pinLDR); else if((valorLDR >= 223) & (valorLDR <
Serial.println(valorLDR); 623))
{
} digitalWrite(pinLed1, HIGH);

}
Diferencia Digital y Análoga
LED RGB De Ánodo Común Y Salidas PWM Cuasi Análogas.

Las salidas PWM (ancho de pulso modulado), oscilan su valor


entre 0V y 5V al ritmo que tú le indiques mediante la
instrucción analogWrite().

Cuanto mayor sea el valor de tus salidas PWM (cuanto más


se aproxime a 5V), menor diferencia de voltaje habrá en tu
LED RGB, menor será la corriente que lo atraviese y, por
tanto, menos brillará.
int Rojo = 9; //definimos pines
int Verde = 10;
int Azul = 11;

void setup() {
//Se establecen los pines definidos como salidas para poder
pinMode(Rojo, OUTPUT);
pinMode(Verde, OUTPUT);
pinMode(Azul, OUTPUT);
}

void loop() {
//uso de la instrución random(min,max);.
establecerColor(random(127, 255), random(127, 255),
random(127, 255));

delay(2000);
}
void establecerColor(int R, int G, int B) {

//Se utiliza la expresión 255-X para “naturalizar los valores”.


//de 0V por el pin PWM, esto es, analogWrite(X, 0);).

analogWrite(Rojo, 255 - R);


analogWrite(Verde, 255 - G);
analogWrite(Azul, 255 - B);

}
El Transistor y Motores CD
Un transistor es un componente electrónico semiconductor que cumple funciones de
amplificador, oscilador, conmutador o rectificador.

De hecho un transistor en corte es un 0 y en saturación


es un 1, (TRUE / FALSE).
Cada vez que escuchas música, hay un transistor (o
varios) amplificando una señal débil para que puedas
Silicio y el arseniuro de Galio escucharla.

De izquierda a derecha son :


Emisor(Salida amplificada)
Base(Control de voltaje)
Colector(5V).
Importante: Dado que el motor tiene
carga inductiva conviene añadir un
diodo que proteja el transistor.
const int control = 9;
//algo sencillo prender y apagar
void setup() {
pinMode(control,OUTPUT);
}
void loop() {
digitalWrite(control, HIGH);
delay(2000);
digitalWrite(control, LOW);
delay(1000);
}
const int control = 9;

void setup() {
pinMode(control, OUTPUT) ;
}
void loop() {
for ( int n = 0 ; n < 255 ; n++)
{
analogWrite (control, n) ;
delay(15) ;
}
}

You might also like