ola, sou novo em arduino e estou precisando de ajuda, eu preciso fazer um projeto em arduino com 5 botoes para movimentar o servo para as posicoes 0,45,90 e 180, porem, eu n tenho ideia como eu poderia fazer isso, alguem me ajuda?
Olá Saulo
é bem simples na verdade, qual modelo se servo você tem ai?
https://proesi.com.br/servo-9g-dxw90-towerpro-acessorios-sg90.html
è esse modelo aqui?
Tenta com esse codigo:
#include <Servo.h> Servo servo1; // define o nome servo int pos = 0; int botao1=0, botao2=0, botao3=0, botao4=0, botao5=0; void setup() { servo1.attach(11); //pino de controle do servo motor //Defino pinos de entrada pinMode(3,INPUT_PULLUP); pinMode(4,INPUT_PULLUP); pinMode(5,INPUT_PULLUP); pinMode(6,INPUT_PULLUP); pinMode(7,INPUT_PULLUP); } void loop() { botao1 = digitalRead(3); botao2 = digitalRead(4); botao3 = digitalRead(5); botao4 = digitalRead(6); botao5 = digitalRead(7); if(botao == LOW) { servo1.write(pos); delay(0); } if(botao == LOW) { servo1.write(pos); delay(45); } if(botao == LOW) { servo1.write(pos); delay(90); } if(botao == LOW) { servo1.write(180); delay(1000); } if(botao == LOW) { for(pos = 0; pos < 180; pos += 1) // Vai de 0 grau a 180 em passo de 1 grau { // Chama o servo1 para ir para a posição da variavel "pos" servo1.write(pos); delay(500); // Agurade 50ms para para o servo1 atingir a posição } for(pos = 180; pos>=1; pos-=1) // Vai de 180 graus ate 0 { // Chama o servo1 para ir para a posição da variavel "pos" servo1.write(pos); delay(100); // Aguarda 10ms para o servo1 atingir a posição } } delay(50); // Agurade 50ms para para o servo1 atingir a posição }
Ops, pena errata:
#include <Servo.h> Servo servo1; // define o nome servo int pos = 0; int botao1=0, botao2=0, botao3=0, botao4=0, botao5=0; void setup() { servo1.attach(11); //pino de controle do servo motor //Defino pinos de entrada pinMode(3,INPUT_PULLUP); pinMode(4,INPUT_PULLUP); pinMode(5,INPUT_PULLUP); pinMode(6,INPUT_PULLUP); pinMode(7,INPUT_PULLUP); } void loop() { botao1 = digitalRead(3); botao2 = digitalRead(4); botao3 = digitalRead(5); botao4 = digitalRead(6); botao5 = digitalRead(7); if(botao1 == LOW) { servo1.write(0); delay(1000); } else if(botao2 == LOW) { servo1.write(45); delay(1000); } else if(botao3 == LOW) { servo1.write(90); delay(1000); } else if(botao4 == LOW) { servo1.write(180); delay(1000); } else if(botao5 == LOW) { for(pos = 0; pos < 180; pos += 1) // Vai de 0 grau a 180 em passo de 1 grau { // Chama o servo1 para ir para a posição da variavel "pos" servo1.write(pos); delay(500); // Agurade 50ms para para o servo1 atingir a posição } for(pos = 180; pos>=1; pos-=1) // Vai de 180 graus ate 0 { // Chama o servo1 para ir para a posição da variavel "pos" servo1.write(pos); delay(100); // Aguarda 10ms para o servo1 atingir a posição } } delay(50); // Agurade 50ms para para o servo1 atingir a posição }
This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.