Más contenido relacionado
Similar a Arduino - código - video (11)
Arduino - código - video
- 1. #include <Servo.h>
Servo servoVertical;
Servo servoHorizontal;
Servo servoBorrado;
int botonReset = 9;
int botonIzquierda = 10;
int botonArriba = 11;
int botonDerecha = 12;
int botonAbajo = 13;
int pinTransistor = 6;
int estadoBotonReset;
int estadoBotonIzquierda;
int estadoBotonArriba;
int estadoBotonDerecha;
int estadoBotonAbajo;
char salir;
void setup() {
Serial.begin(9600);
Serial.flush();
servoBorrado.attach(4);
servoBorrado.write(0);
servoBorrado.detach();
pinMode(botonReset, INPUT);
pinMode(botonIzquierda, INPUT);
pinMode(botonArriba, INPUT);
pinMode(botonDerecha, INPUT);
pinMode(botonAbajo, INPUT);
pinMode(pinTransistor,OUTPUT);
digitalWrite(pinTransistor, LOW);
}
void loop() {
char opcion = pedirOpcion();
switch(opcion) {
case 'a': dibujarCuadrado();
break;
case 'b': dibujarTriangulo();
break;
case 'c': dibujarRectangulo();
break;
case 'd': dibujarCaracol();
break;
case 'e': dibujarCaracol2();
break;
case 'f': dibujarPollo();
break;
case 'g': dibujarRana();
break;
case 'h': dibujarMariposa();
break;
case 'i': borrarDibujo();
break;
case 'j': dibujarJirafa();
break;
/*case '0': dibujarCero();
delay(10000);
break;*/
case '1': dibujarUno();
break;
/*case '2': dibujarDos();
- 2. delay(10000);
break;
case '3': dibujarTres();
break;
case '4': dibujarCuatro();
break;
case '5': dibujarCinco();
break;
case '6': dibujarSeis();
break;
case '7': dibujarSiete();
break;
case '8': dibujarOcho();
break;
case '9': dibujarNueve();
break;*/
case 'z': Serial.println("Modo edicion activado. Inserte 'q' para salir.");
estadoBotonReset = digitalRead(botonReset);
salir = Serial.read();
while(salir != 'q') {
//while(estadoBotonReset == LOW) {
estadoBotonIzquierda = digitalRead(botonIzquierda);
estadoBotonArriba = digitalRead(botonArriba);
estadoBotonDerecha = digitalRead(botonDerecha);
estadoBotonAbajo = digitalRead(botonAbajo);
if(estadoBotonIzquierda == HIGH) {
pintarIzquierda(50); }
if(estadoBotonArriba == HIGH) {
pintarArriba(50);
}
if(estadoBotonDerecha == HIGH) {
pintarDerecha(50);
}
if(estadoBotonAbajo == HIGH) {
pintarAbajo(50);
}
estadoBotonReset = digitalRead(botonReset);
salir = Serial.read();
Serial.flush();
}
Serial.println("Saliendo de modo edicion.");
break;
default: Serial.println("Opcion incorrecta. Mostrando opciones de nuevo.");
}
}
char pedirOpcion() {
Serial.println("Que desea dibujar?");
Serial.println("a) Cuadrado.");
Serial.println("b) Triangulo.");
Serial.println("c) Rombo.");
Serial.println("d) Cero.");
Serial.println("e) Uno.");
Serial.println("f) Dos.");
Serial.println("Seleccione una opcion: ");
while (Serial.available() == 0);
char input = Serial.read();
Serial.flush();
Serial.print("Elegida opcion ");
Serial.write(input);
Serial.println(".");
return input;
- 3. }
void borrarDibujo() {
//Serial.println("Borrando dibujo.");
digitalWrite(pinTransistor, HIGH);
servoBorrado.attach(4);
servoBorrado.write(160);
delay(4000);
servoBorrado.write(0);
delay(2500);
servoBorrado.write(160);
delay(4000);
servoBorrado.write(0);
delay(4000);
servoBorrado.detach();
digitalWrite(pinTransistor, LOW);
}
void pintarArriba(int tiempo) {
servoVertical.attach(3);
servoVertical.write(0);
delay(tiempo);
servoVertical.detach();
}
void pintarAbajo(int tiempo) {
servoVertical.attach(3);
servoVertical.write(180);
delay(tiempo);
servoVertical.detach();
}
void pintarDerecha(int tiempo) {
servoHorizontal.attach(2);
servoHorizontal.write(0);
delay(tiempo);
servoHorizontal.detach();
}
void pintarIzquierda(int tiempo) {
servoHorizontal.attach(2);
servoHorizontal.write(180);
delay(tiempo);
servoHorizontal.detach();
}
//funciones para pintar las figuras
void dibujarCuadrado() {
pintarArriba(1000);
delay(150);
pintarDerecha(2500);
delay(150);
//Arriba
pintarArriba(2500);
//Derecha
pintarDerecha(2500);
//Abajo
pintarAbajo(2650);
//Izquierda
pintarIzquierda(2500);
pintarIzquierda(2400);
delay(150);
pintarAbajo(1000);
delay(150);
- 6. }
//Funciones para pintar los numeros del 0-9
void dibujarCero(){
//fuera
//pintarDerecha(1500);
//Abajo
//pintarAbajo(2000);
//Izquierda
//pintarIzquierda(1490);
//Arriba
//pintarArriba(1900);
pintarArriba(1000);
delay(150);
pintarDerecha(2500);
delay(150);
pintarArriba(1650);
delay(150);
pintarDerecha(1000);
delay(150);
pintarAbajo(1530);
delay(150);
pintarIzquierda(1150);
delay(150);
pintarAbajo(270);
delay(150);
pintarIzquierda(200);
delay(150);
pintarArriba(2050);
delay(150);
pintarDerecha(1650);
delay(150);
pintarAbajo(2030);
delay(150);
pintarIzquierda(1300);
delay(150);
pintarIzquierda(2500);
delay(150);
pintarAbajo(1000);
delay(150);
}
void dibujarUno(){
pintarArriba(1000);
delay(150);
pintarDerecha(2500);
delay(150);
pintarArriba(1500);
delay(150);
pintarIzquierda(250);
delay(150);
pintarArriba(350);
delay(150);
pintarDerecha(650);
delay(150);
pintarAbajo(2100);
delay(150);
pintarIzquierda(400);
delay(150);
pintarIzquierda(2460);
delay(150);
pintarAbajo(1000);
delay(150);
}
- 15. delay(150);
pintarAbajo(1000);
delay(150);
}
void dibujarJirafa(){
pintarArriba(1000);
delay(150);
pintarDerecha(2500);
delay(150);
pintarArriba(2000);
//aqui empieza la cabeza
pintarIzquierda(200);
delay(150);
pintarArriba(200);
delay(150);
pintarIzquierda(400);
delay(150);
pintarArriba(150);
delay(150);
pintarDerecha(500);
delay(150);
pintarArriba(200);
delay(150);
pintarDerecha(150);
delay(150);
pintarAbajo(250);
delay(150);
pintarDerecha(100);
delay(150);
pintarArriba(250);
delay(150);
pintarDerecha(100);
delay(150);
pintarAbajo(300);
delay(150);
pintarDerecha(70);
delay(150);
pintarAbajo(300);
delay(150);
pintarIzquierda(100);
delay(150);
//termina el cuello
pintarAbajo(1500);
//cuerpo
pintarDerecha(1800);
//cola
pintarAbajo(400);
pintarIzquierda(150);
pintarArriba(400);
//patas derechas
pintarAbajo(1600);
pintarIzquierda(150);
pintarArriba(1600);
pintarAbajo(1200);
pintarIzquierda(150);
pintarArriba(1200);
pintarAbajo(400);
//barriga
pintarIzquierda(1100);
pintarArriba(400);
//piernas izquierdas
pintarAbajo(1600);
pintarIzquierda(150);
pintarArriba(1600);