0% encontró este documento útil (0 votos)
67 vistas6 páginas

Guía de Ejercicios de Programación Arduino

El documento presenta tres ejercicios de programación en Arduino. El primero genera la serie de Fibonacci y la imprime por el monitor serie. El segundo controla el giro de un motor trifásico mediante pulsadores. El tercero controla un motor paso a paso de manera secuencial haciéndolo girar en sentidos alternados.

Cargado por

Erbin C Espinoza
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
67 vistas6 páginas

Guía de Ejercicios de Programación Arduino

El documento presenta tres ejercicios de programación en Arduino. El primero genera la serie de Fibonacci y la imprime por el monitor serie. El segundo controla el giro de un motor trifásico mediante pulsadores. El tercero controla un motor paso a paso de manera secuencial haciéndolo girar en sentidos alternados.

Cargado por

Erbin C Espinoza
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 6

EJERCICIOS DE PROGRAMACIÓN EN ARDUINO

1.- Realice un programa para generar el algoritmo de la serie de Fibonacci


(0, 1, 1, 2, 3, 5, 8, 13, 21, … ) desplegándola en el monitor serie, como ésta es infinita, que
solamente se desplieguen los primero siete números.
a) 0
1
1
2
3
5
8
0
1
1
2
3
5
:
y así sucesivamente hasta apagar
b) 0, 1, 1, 2, 3, 5, 8, …fin (sólo una vez)
c) 0, 1, 1, 2, 3, 5, 8, … fin (sólo cuando se envía desde el monitor serie, la letra I)

2.-

a) Realice el programa de inversión de giro de un motor trifásico, como el realizado en la


primera y segunda práctica de la materia (control combinacional), de modo que el motor
funciona sólo mientras se pulsa uno de los pulsadores, si se pulsan simultáneamente ambos
pulsadores, el motor no funcione.

b) Realice el programa de inversión de giro de un motor trifásico en modo secuencial, según el


grafo mostrado a continuación:
t2 Motor
CW
0
Motor t4
parado
t4

t3 Motor
CCW

3.- Sin hacer uso de librerías, programe control de un motor paso a paso monopolar en paso
simple de 15 grados por pulso y funcione a una velocidad de 5rpm:

a) El eje del motor gire una vuelta completa en un sentido de giro, supongamos horario, luego
de ello pare durante un segundo, posteriormente revierta su sentido de giro otra vuelta en
sentido anti horario, pare durante un segundo y se repita el ciclo. El monitor serial debe
desplegar el mensaje del sentido de rotación.

b) Mediante un pulsador se inicie el proceso cíclico explicado en el anterior inciso y, mediante


otro pulsador se pare el funcionamiento del motor.
SOLUCIÓN

1.- a)

void setup()
{
Serial.begin(9600);
}
void loop()
{
int a=0;
int b=1;
int contador=0;
Serial.println(a);
delay(1000);
Serial.println(b);
delay(1000);
while (contador<5)
{
contador++;//contador=contador+1
int c=a+b;
Serial.println(c);
a=b;
b=c;
delay(1000);
}
delay(1000);
}

1.- b)

void setup()
{
int a=0;
int b=1;
int contador=0;
Serial.print(a);
Serial.print(",");
delay(1000);
Serial.print(b);
Serial.print(",");
delay(1000);
while (contador<5)
{
contador++;
int c=a+b;
Serial.print(c);
Serial.print(",");
a=b;
b=c;
delay(1000);
}
delay(1000);
Serial.println("...fin");
}
void loop()
{
}

1.- c)

int dato;
void setup()
{
Serial.begin(9600);
}
void loop()
{
if (Serial.available())
{
// read dataread trough serial communication
dato = Serial.read();
if (dato=='I')
{
int a=0;
int b=1;
int contador=0;
Serial.print(a);
Serial.print(",");
delay(1000);
Serial.print(b);
Serial.print(",");
delay(1000);
while (contador<5)
{
contador++;
int c=a+b;
Serial.print(c);
Serial.print(",");
a=b;
b=c;
delay(1000);
}
delay(1000);
Serial.println("...fin");
}
}
}

2.- a)
int estadoCW, estadoCCW;
const int CW=2;
const int CCW=3;
void setup()
{
Serial.begin(9600);
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
pinMode(4,OUTPUT);//accionamiento CW
pinMode(5,OUTPUT);//accionamiento CCW
}
// the loop function runs over and over again forever
void loop() {
estadoCW=digitalRead(CW);
estadoCCW=digitalRead(CCW);
if(estadoCW == LOW && estadoCCW == HIGH)
{
digitalWrite(4, HIGH);
Serial.println("CW");
delay(100);
}
else if(estadoCW == HIGH && estadoCCW == LOW)
{
digitalWrite(5,HIGH);
Serial.println("CCW");
delay(100);
}
else
{
digitalWrite(4,LOW);
digitalWrite(5,LOW);
Serial.println("parado");
delay(100);
}
}

2.- b)

int t2=1,t3=1,t4=1;
int etapa0=0,etapa1=0,etapa2=0;
void setup()
{
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(13,OUTPUT);//CW
pinMode(12,OUTPUT);//CCW
pinMode(2,INPUT_PULLUP);//t2
pinMode(3,INPUT_PULLUP);//t3
pinMode(4,INPUT_PULLUP);//t4
etapa0=1;
}

void loop()
{
// put your main code here, to run repeatedly:
t2=digitalRead(2);
t3=digitalRead(3);
t4=digitalRead(4);
if (etapa0==1 && t2==0 && t3==1 && t4==1)
{
etapa1=1;
etapa2=0;
etapa0=0;
Serial.println("etapa 1");//CW
}
else if (etapa0==1 && t2==1 && t3==0 && t4==1)
{
etapa2=1;
etapa1=0;
etapa0=0;
Serial.println("etapa 2");//CCW
}
else if ((etapa1==1 && t4==0) || (etapa2==1 && t4==0))
{
etapa0=1;
etapa1=0;
etapa2=0;
Serial.println("etapa 0");//parado
}

if (etapa1==1)
{
digitalWrite(13,HIGH);
Serial.println("CW");
delay(100);
}
else if (etapa2==1)
{
digitalWrite(14,HIGH);
Serial.println("CCW");
delay(100);
}
else if (etapa0==1)
{
digitalWrite(13,LOW);
digitalWrite(14,LOW);
Serial.println("parado");
delay(100);
}
}

También podría gustarte