Está en la página 1de 6

Ejercicio número 1 motor a pasos

int retardo=5;

int dato_rx;

int numero_pasos = 0;

String leeCadena;

void setup() {

Serial.begin(9600);

pinMode(11, OUTPUT);

pinMode(10, OUTPUT);

pinMode(9, OUTPUT);

pinMode(8, OUTPUT);

void loop() {

while (Serial.available()) {

delay(retardo);

char c = Serial.read();

leeCadena += c;

if (leeCadena.length()>0){

dato_rx = leeCadena.toInt();

Serial.print(dato_rx);

Serial.println(" Grados");

delay(retardo);

dato_rx = (dato_rx * 1.4222222222);

while (dato_rx>numero_pasos){

paso_izq();
numero_pasos = numero_pasos + 1;

while (dato_rx<numero_pasos){

paso_der();

numero_pasos = numero_pasos -1;

leeCadena = "";

apagado();

void paso_der(){

digitalWrite(11, LOW);

digitalWrite(10, LOW);

digitalWrite(9, HIGH);

digitalWrite(8, HIGH);

delay(retardo);

digitalWrite(11, LOW);

digitalWrite(10, HIGH);

digitalWrite(9, HIGH);

digitalWrite(8, LOW);

delay(retardo);

digitalWrite(11, HIGH);

digitalWrite(10, HIGH);

digitalWrite(9, LOW);

digitalWrite(8, LOW);

delay(retardo);

digitalWrite(11, HIGH);

digitalWrite(10, LOW);

digitalWrite(9, LOW);
digitalWrite(8, HIGH);

delay(retardo);

void paso_izq() {

digitalWrite(11, HIGH);

digitalWrite(10, HIGH);

digitalWrite(9, LOW);

digitalWrite(8, LOW);

delay(retardo);

digitalWrite(11, LOW);

digitalWrite(10, HIGH);

digitalWrite(9, HIGH);

digitalWrite(8, LOW);

delay(retardo);

digitalWrite(11, LOW);

digitalWrite(10, LOW);

digitalWrite(9, HIGH);

digitalWrite(8, HIGH);

delay(retardo);

digitalWrite(11, HIGH);

digitalWrite(10, LOW);

digitalWrite(9, LOW);

digitalWrite(8, HIGH);

delay(retardo); }

void apagado() {

digitalWrite(11, LOW);

digitalWrite(10, LOW);

digitalWrite(9, LOW);

digitalWrite(8, LOW);
}

Ejercicio número 2 servo


motormotor
#include <Servo.h>

//Variables

Servo SERVOT;

const int controlPin = 2;

int velocidad = 0;

int pulsacion = 0;

int estado_boton;

int estado_boton_anterior;

int pos = 0; // variable de posición

void setup() {

Serial.begin(9600);//Frec

SERVOT.attach(9); // Verifica si la variable servo está unido al pin indicado

SERVOT.write(20);

pinMode(controlPin, INPUT_PULLUP); //Estado alto

estado_boton_anterior = digitalRead(controlPin);

void loop() {

detecta_pulsacion();

//Condiciones

if (pulsacion > 0) {

for (pos = 20; pos <= 160; pos += 5) { //de 0 degrees a 180

SERVOT.write(pos); // Indicar al servo que vaya a la position en variable 'pos'

delay(velocidad);

detecta_pulsacion(); //para cambaiar velocidad

}
for (pos = 160; pos >= 20; pos -= 5) {

SERVOT.write(pos);

delay(velocidad);

detecta_pulsacion();

void detecta_pulsacion() {

//estado boton

estado_boton = digitalRead(controlPin);

//Detección pulsación boton

if (estado_boton != estado_boton_anterior) {

if (estado_boton == HIGH) {

Serial.println("Nueva pulsacion");

pulsacion++;

switch (pulsacion) {

case 1:

velocidad = 40;

delay (10);// Duración

break;

case 2:

velocidad = 10;

delay (10);// Duración

break;

case 3:

pulsacion = 0;

break;

}
}

estado_boton_anterior = estado_boton;

También podría gustarte