Ola Galera,Desculpa o incomodo mais estou trabalhando em um projeto para a Faculdade.

O proposito é o seguinte:

Ao ser acionado um Pushbottom o braco robotico ira pegar uma latinha de cerveja(sera utilizado a garra robotica MKII com mais quatroservo motores na base do braco)os servos motores se moveram simultaneamente(um led Ficara Piscando em todo o processo de movimentacao dos servo Motores).

Localizando a latinha na frente de dois pistoes,os servos iram colocar a latinha no compatimento  para ser esmagada e recuar ,Logo em seguida um pistao sera acionado esmagando a latinha depois ele ira recuar e o outro pistao sera acionado expusando a latinha para a esteira,depois ele ira recuar(um Buzzer vai ficar emitindo sons em todo momento neste processo).

Depois da latinha na esteira sera acionado dois motores(controlando a velocidade por Potenciometro) E depois de 30s a esteira ira desligar.

Os servos e o motor de passo ira retornar para o local de origem.

Possibilitando assim um novo processo.

Galera Oq eu conssegui fazer esta aqui se puderem me deem uma forcinha ai por favor.

Desde ja agradeco a todos.

#include <Servo.h>

Servo myservo;
Servo myservo1;
Servo myservo2;
Servo myservo3;

int Motor = 50;
int Led = 31;

int buzzer = 28;
int Potenciometer_Motor = A0;

int acionamento_pistao1 = 2;
int acionamento_pistao2 = 3;
int recuo_pistao1 = 4;
int recuo_pistao2 = 5;

int botton = 6; // escolha o pino de entrada (para o interruptor)
int val = 0; // variável para ler o estado do interruptor

void setup() {
myservo.attach(7);
myservo1.attach(8);
myservo2.attach(9);
myservo3.attach(10);

pinMode(acionamento_pistao1, OUTPUT);
pinMode(acionamento_pistao2, OUTPUT);

pinMode(recuo_pistao1, OUTPUT);
pinMode(recuo_pistao2, OUTPUT);

digitalWrite(recuo_pistao1, HIGH);
digitalWrite(recuo_pistao2, HIGH);

pinMode(botton,INPUT);
pinMode(buzzer, OUTPUT);


myservo.write(0);
myservo1.write(0);
myservo2.write(0);
myservo3.write(0);
}

void loop(){
val = digitalRead(botton); // ler o valor de entrada
if (val == HIGH) { // verificar se a entrada é HIGH (interruptor livre)
myservo.write(180);
delay(50);
myservo1.write(180);
delay(50);
myservo2.write(180);
delay(50);
myservo3.write(180); //Motor da Base
delay(50);

//Acionamento dos Pistoes

tone(buzzer,1500);//Ligando o buzzer.
delay(500);

digitalWrite(acionamento_pistao1, HIGH);
delay(10000);
digitalWrite(recuo_pistao1, HIGH);
delay(10000);
digitalWrite(acionamento_pistao2, HIGH);
delay(10000);
digitalWrite(recuo_pistao2, HIGH);

noTone(buzzer);//Desligando o buzzer.
delay(500);

//Acionando Esterira

digitalWrite(Led, HIGH);
delay(1000);
digitalWrite(Led, LOW);
delay(1000);

val = analogRead(Potenciometer_Motor);

analogWrite(Motor, val / 4);
delay(20000);
digitalWrite(Motor,LOW);

//Retorno dos Servo Motores
myservo.write(0);
myservo1.write(0);
myservo2.write(0);
myservo3.write(0);

}
else{
myservo.write(0);
myservo1.write(0);
myservo2.write(0);

}

}

Exibições: 159

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço