ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Codigo Arduino motor a pasos


Enviado por   •  30 de Noviembre de 2021  •  Trabajos  •  425 Palabras (2 Páginas)  •  59 Visitas

Página 1 de 2

Código Arduino

int D0=10; int D1=11; int D2=12; int D3=13; int S1=7; int S2=6; int S3=5; int S4=4;

boolean a = false; boolean p = false; boolean g = false; int velocidad = 300; int unidades = 0; int giro = 0;

void setup()

{

Serial.begin(9600); pinMode(D0,OUTPUT); pinMode(D1,OUTPUT); pinMode(D2,OUTPUT); pinMode(D3,OUTPUT); pinMode(S1,OUTPUT); pinMode(S2,OUTPUT); pinMode(S3,OUTPUT); pinMode(S4,OUTPUT);

}

void loop()

{

if(Serial.available())

{

char letra = Serial.read(); if(letra == 'a')

{

a = true; p = false;

}

if(letra == 'b')

{

p = true; a = false;

}

if(letra == 'c')

{

g = !g;

}

}

if(g == true){giro = 1;} if(g == false){giro = 2;} if(a == true && giro == 1)

{

for(unidades=0;unidades<10;unidades++)

{

motor_derecha(); display_A(unidades);

}

}

if(a == true && giro ==2)

{

for(unidades=9;unidades>=0;unidades--)

{

motor_izquierda(); display_A(unidades);

}

}

if(p == true)

{

giro=0; unidades=0;

display_A(unidades); digitalWrite(D0,LOW); digitalWrite(D1,LOW); digitalWrite(D2,LOW); digitalWrite(D3,LOW);

}

}

void motor_derecha()

{

digitalWrite(D0,HIGH); digitalWrite(D1,LOW); digitalWrite(D2,LOW); digitalWrite(D3,LOW); delay(velocidad);

digitalWrite(D0,LOW); digitalWrite(D1,HIGH); digitalWrite(D2,LOW);

digitalWrite(D3,LOW); delay(velocidad);

digitalWrite(D0,LOW); digitalWrite(D1,LOW); digitalWrite(D2,HIGH); digitalWrite(D3,LOW); delay(velocidad);

digitalWrite(D0,LOW); digitalWrite(D1,LOW); digitalWrite(D2,LOW); digitalWrite(D3,HIGH); delay(velocidad);

}

void motor_izquierda()

{

digitalWrite(D0,LOW); digitalWrite(D1,LOW); digitalWrite(D2,LOW); digitalWrite(D3,HIGH); delay(velocidad);

digitalWrite(D0,LOW); digitalWrite(D1,LOW); digitalWrite(D2,HIGH); digitalWrite(D3,LOW); delay(velocidad);

digitalWrite(D0,LOW); digitalWrite(D1,HIGH); digitalWrite(D2,LOW); digitalWrite(D3,LOW); delay(velocidad);

digitalWrite(D0,HIGH); digitalWrite(D1,LOW); digitalWrite(D2,LOW); digitalWrite(D3,LOW); delay(velocidad);

}

void display_A(int unidades)

{

if(unidades==0)

{

digitalWrite(S1,LOW); digitalWrite(S2,LOW); digitalWrite(S3,LOW); digitalWrite(S4,LOW);

}

if(unidades==1)

{

digitalWrite(S1,HIGH); digitalWrite(S2,LOW); digitalWrite(S3,LOW); digitalWrite(S4,LOW);

}

if(unidades==2)

{

digitalWrite(S1,LOW); digitalWrite(S2,HIGH); digitalWrite(S3,LOW); digitalWrite(S4,LOW);

}

if(unidades==3)

{

digitalWrite(S1,HIGH); digitalWrite(S2,HIGH); digitalWrite(S3,LOW); digitalWrite(S4,LOW);

}

if(unidades==4)

{

digitalWrite(S1,LOW); digitalWrite(S2,LOW); digitalWrite(S3,HIGH); digitalWrite(S4,LOW);

}

if(unidades==5)

{

digitalWrite(S1,HIGH); digitalWrite(S2,LOW); digitalWrite(S3,HIGH); digitalWrite(S4,LOW);

}

if(unidades==6)

{

digitalWrite(S1,LOW);

digitalWrite(S2,HIGH); digitalWrite(S3,HIGH); digitalWrite(S4,LOW);

}

if(unidades==7)

{

digitalWrite(S1,HIGH); digitalWrite(S2,HIGH); digitalWrite(S3,HIGH); digitalWrite(S4,LOW);

}

if(unidades==8)

{

digitalWrite(S1,LOW); digitalWrite(S2,LOW); digitalWrite(S3,LOW); digitalWrite(S4,HIGH);

}

if(unidades==9)

{

digitalWrite(S1,HIGH); digitalWrite(S2,LOW); digitalWrite(S3,LOW); digitalWrite(S4,HIGH);

}

}

Código Processing

import processing.serial.*;//Liberría

Serial MiSerial;

color Apagado = color(0,0,0); //negro

color Motor = color(204,102,0); //anaranjado color ColorLED = color(28,142,255); // azul color Arranque = color(0,200,0); //verde color Paro = color(200,0,0); //rojo

PFont fuente; boolean BA = false; boolean BP = false; boolean BG = false; int giro = 0;

int a = 0;

int numero = 0;

void setup()

{

size (600,600);

String NombrePuerto = "COM1"; print(NombrePuerto);

MiSerial = new Serial(this,NombrePuerto,9600);

fuente=createFont("Arial",16); textFont(fuente); textAlign(CENTER,CENTER);

}

void draw()

{

background(255); fill(Arranque); ellipse(100,100,100,100);

fill(Paro); ellipse(100,220,100,100); fill(100,0,100); ellipse(100,340,100,100);

fill(Apagado); textFont(fuente,15); text("Arranque",210,100); text("Paro",200,220);

text("Inv. Giro",200,340); text("Motor a Pasos",400,250); text("Display 7 seg.",400,500); if(BG == true){giro = 1;}

if(BG == false){giro = 2;} if(BA == true && giro == 1)

{

if(numero>=10){numero=0;} display_A(numero); motor_derecha();

}

if(BA == true && giro == 2)

{

if(numero<0){numero=9;} display_A(numero); motor_izquierda();

}

if(BP == true)

{

giro=0; numero=0;

display_A(numero); fill(Apagado); rect(300,280,40,40); rect(350,280,40,40); rect(400,280,40,40); rect(450,280,40,40);

}

}

void mousePressed()

{

float distanciaA = dist(100,100,mouseX,mouseY); float distanciaP = dist(100,220,mouseX,mouseY); float distanciaG = dist(100,340,mouseX,mouseY);

...

Descargar como (para miembros actualizados)  txt (8.5 Kb)   pdf (66.7 Kb)   docx (15.9 Kb)  
Leer 1 página más »
Disponible sólo en Clubensayos.com