You are on page 1of 36

UNIVERSIDAD DE SANTIAGO

FACULTAD DE INGENIERIA
DEPTO. INGENIERIA ELECTRICA

CURSO: MICROCOMPUTADORES

EJERCICIOS

UNIVERSIDAD DE SANTIAGO - FACULTAD DE INGENIERIA - INGENIERIA ELECTRICA

ARACTERSTICAS ARDUINO LEONARDO


MEMORIA DE PROGRAMA: 32 KB
MEMORIA DE DATOS: 2,5KB
EEPROM: 1 KB
N PINES: 38(ATmega 32U4: 44 PINES)
N PINES E/S: 20
ENTRADAS ANALOGAS: 6
SALIDAS PWM: 7
PUERTOS SERIE: 4
CLOCK: 16 MHz

Corriente DC por pin: 40 miliamperes

LA TARJETA ARDUINO LEONARDO


La tarjeta Arduino Leonardo posee un conector de
alimentacin, un conector USB, un botn de RESET, un
conector de 10 pines, 2 conectores de 8 pines y 2
conectores de 6 pines(uno macho y otro hembra)
10 pines hembra8 pines hembra

Botn de RESET
Conector USB
6 pines macho
ICSP header
Conector de
Alimentacin

MOSI, MISO, SCK,


RESET, VCC, GND.

8 pines hembra6 pines hembra

ONECTORES DE LA PARTE SUPERIOR


Los pines de los conectores de la parte superior son 18, de los
cuales 14 estn numerados de 0 a 13.
Los pines 0 y 1 son usados por Arduino para la comunicacin
serie(USB) y estn identificados como RX(pin 0) y TX(pin1).
Los pines 3-5-6-9-10 -11 y 13 pueden actuar como salidas anlogas
usando Modulacin por Ancho de Pulso(PWM).
Los pines 4-6-8-9-10 y 12 pueden funcionar como entradas
analgicas
El pin SCL es la lnea de reloj para la comunicacin I2C
El pin SDA es la lnea de datos para la comunicacin I2C
El pin AREF es el voltaje de referencia para las entradas analgicas.
El pin GND es la lnea de tierra(GROUND)

ONECTORES DE LA PARTE INFERIOR


Los pines de los conectores de la parte inferior son 14. Seis de ellos
corresponden a entradas analgicas A0-A1-A2-A3-A4 y A5. Los otros
pines corresponden a las lneas de alimentacin de 3,3V y 5V y
tierra GND. Un 0 en la lnea RESET resetea al microcontrolador.
La lnea IOREF corresponde al voltage con el cual operan las lneas
de entrada-salida (5Volts).
La lnea VIN es una entrada de voltaje externo, que se puede usar
en vez de la alimentacin de USB.

pines 4-6-8-9-10-12 pueden funcionar tambin como entradas analgicas.

ESTRUCTURA DEL PROGRAMA


// Ttulo
definicin de constantes y
variables
void setup()
{
}
void loop()
{
}

ESTRUCTURA DEL PROGRAMA


La funcin setup se usa generalmente para
definir la configuracin de los pines o iniciar
bibliotecas.
La funcin loop es una funcin que se repite
en forma indefinida
void setup()
{

void loop()
{

SIMBOLOS ESPECIALES

smbolo // : Ttulo y comentarios


(/*
*/)
smbolo () : Indicar los parmetros
de la
funcin o instruccin.
smbolo { } : Marcar bloques de
cdigo.

CONSTANTES Y VARIABLES
Las constantes son datos que no cambian de valor
durante
la ejecucin de un programa.
const int LED = 13 ;
Las variables son datos que pueden cambiar de
valor durante
la ejecucin de un programa.
int dato = 0
BOOLEANAS
LONG
CHAR
UNSIGNED LONG
BYTE
FLOAT
INT
DOUBLE
UNSIGNED INT STRING

EJERCICIO 1
Encender y apagar un LED
conectado al pin 13, en forma
intermitente, cada 1 segundo.

INSTRUCCIONES
pinMode( );
digitalWrite( );
delay();

// EJERCICIO 1: ENCENDER Y APAGAR UN LED


const

int

LED = 13; // Led conectado al pin 13

void setup()
{
pinMode(LED, OUTPUT); //Pin 13 es salida
}
void loop()
{
digitalWrite(LED,
delay(1000);
digitalWrite(LED,
delay(1000);
}

HIGH); //Encender LED


//retardo de 1 segundo
LOW); //Apagar LED
//retardo de 1 segundo

EJERCICIO 2
Encender el LED conectado al
pin 13, solamente mientras el
interruptor conectado al pin 7
est cerrado.

INSTRUCCIONES

digitalRead(n pin);
If (condicin){

If (condicin){

}
else {

// EJERCICIO 2 ENCENDER LED MIENTRAS EL BOTON ESTA PRESIONAD


const int LED = 13; // Led conectado al pin 13
const int BOTON = 7; // Botn conectado al pin 7
int estado = 0; // estado variable entera para guardar el valor de la entrada

void setup()
{
pinMode(LED, OUTPUT); //Pin 13 es salida
pinMode(BOTON, INPUT); //Pin 7 es entrada
}
void loop()
{
estado = digitalRead(BOTON);
if (estado == HIGH) {
digitalWrite(LED, HIGH); //Encender LED
} else {
digitalWrite(LED, LOW); //Apagar LED
}
}

EJERCICIO 3
Encender y apagar el LED
conectado al pin13, en forma
gradual.

Los pines 3-5-6-9-10 -11 y 13

WM : Modulacin por ancho de pulso


Instruccin analogWrite: permite generar
un pulso cuyo ciclo de trabajo se especifica
en la instruccin y puede variar entre 0 y
100 % (pines 3,5,6,9,10,11 y 13)

nalogWrite (pin, valor);

alor: puede tener cualquier valor entre 0 y 255


= 0%
55 = 100 %

Instruccin for: permite repetir una


secuencia de instrucciones un nmero
determinado de veces
for (declaracin; condicin; incremento) {
secuencia de instrucciones
}

for (int i = 0; i < 5; i++) {

JERCICIO 3 ENCENDER Y APAGAR GRADUALMENTEUN LED

st int LED = 13 ;
i = 0;

// Led conectado al pin 9


// valor de PWM

d setup()

inMode(LED, OUTPUT);

d loop() {
or (i = 0; i < 255; i++) {
analogWrite(LED, i);
delay(10);
}
(i = 255; i < 0; i--) {
analogWrite(LED, i);
delay(10);
}

//Pin 13 es salida

Contabilizar grupos de 100 cajas y activar alarma

DIAGRAMA DE FLUJO

// EJERCICIO
const int motor = 2;
const int sensor = 4;
const int alarma = 6;
int cuenta ;
int estado ;

// Define constantes y variables

// estado del sensor

void setup()
{
pinMode(motor,OUTPUT); //Define lneas de E/S
pinMode(sensor, INPUT);
pinMode(alarma, OUTPUT);
}

void loop()
{
cuenta = 0;
digitalWrite(motor, HIGH); // pone en marcha motor
while(cuenta < 100)
{
estado = digitalRead(sensor);
// Lee sensor
while (estado == LOW) {
estado=digitalRead(sensor); // Ciclo mientras sensor = 0
}
while (estado == HIGH) {
estado=digitalRead(sensor); // Ciclo mientras sensor = 1
}
cuenta = cuenta + 1;
}

// Incrementa cuenta

digitalWrite(motor, LOW); // detiene motor


digitalWrite(alarma, HIGH); // activa alarma 10 seg
delay(10000);
digitalWrite(alarma, LOW);
} // fin void loop

2.- Disee el circuito decodificador

2.- Disee el circuito decodificador

EEPROM I = 128 KILOBYTES


EEPROM II = 128 KILOBYTES
RAM I = 16 KILOBYTES
RAM II = 16 KILOBYTES
RAM III = 8 KILOBYTES
RAM IV = 8 KILOBYTES

DECODIFICADOR DE DIRECCIONES DE MEMORIA

INSTRUCCIN WHILE
La instruccin WHILE permite repetir un conjunto de
instrucciones, escritas dentro de parntesis de llaves,
mientras la condicin indicada en la instruccin(entre
parntesis redondo) es verdadera.
Ejemplo:
while(analogRead(sensorPin) > 100)
{
digitalWrite(ledPin, HIGH);
delay(100);
digitalWrite(ledPin, LOW);
delay(100);
}

INSTRUCCIN DO WHILE
La instruccin do while es similar a la instruccin
while, excepto que el bloque de cdigo es ejecutado
antes de que se examine si la condicin es verdadera.
Ejemplo:
do
{
digitalWrite(ledPin, HIGH);
delay(100);
digitalWrite(ledPin, LOW);
delay(100);
}
while(analogRead(sensorPin) > 100)

INSTRUCCIN SWITCH CASE


La instruccin switch compara el valor de la variable
indicada en la instruccin con el valor de las
instrucciones case y salta a aquella cuyo valor
coincide.
Ejemplo:
switch (var)
{
case 1:
//hacer algo cuando sea igual a 1
break;
case 2:
//hacer algo cuando sea igual a 2
break;
default:
// si nada coincide, ejecuta el "default" // el "default"

INSTRUCCIN BREAK
La instruccin break permite salir del lazo y continuar
con la ejecucin de la instruccin siguiente. Se usa
tambin para separar las diferentes secciones de la
instruccin switch case.

INSTRUCCIN ARRAY (ARREGLO)


Un arreglo(array) es simplemente un conjunto de
datos. La posicin de los datos dentro del arreglo es
identificada mediante un ndice.
La declaracin de un array debe indicar el nombre del
arreglo, el tipo de datos y la cantidad.
Por ejemplo, la instruccin
int dato[3];
Esta instruccin crea 3 variables separadas del tipo int,
identificadas como dato[0], dato[1] y dato[2]. El
compilador reserva un bloque de memoria RAM donde
se almacenan los valores de estos datos. El primer dato
del arreglo se identifica con el ndice igual a 0.

INSTRUCCIN ARRAY (ARREGLO)


De este modo, el programa se puede escribir como:
int dato[3];
dato[0] = 8;
dato[0] = 20;
dato[0] = 2;
Otra forma de escribir el programa es la siguiente:
int dato[] = {8, 20, 2];
Los datos deben escribirse dentro de parntesis de
llave y separados con una coma.

You might also like