Como usar um servo motor com Arduino
O grande barato de comprar as coisas pela internet, e no exterior, é a quase completa falta de manuais. Um exemplo disso é o servo motor abaixo, que chegou recentemente e veio em boa hora, já que faltava no blog um post de servo motor com Arduino.
Chegou inteiro, mas desse jeito: o servo, os acessórios num plástico, e só. Uma etiqueta escrito “Micro Servo 9g” foi a maior pista que eu tive do modelo.
Aí começa a parte divertida da coisa, que é descobrir como o servo funciona, suas conexões, tensão de trabalho e tal. Vasculhando no Google, descobri um modelo muito parecido, chamado HXT900, e que sua tensão de operação vai de 3 a 6v. Já é um começo. Mas e as conexões?
Testando o servo motor com Arduino
Bom, o cabo tem 3 vias : Preto, vermelho e branco. Fácil, não ? Preto no GND, vermelho no 5V e branco para dados (ou sinal).
Testei o servo motor com Arduino usando o exemplo que já vem na IDE, que usa um potenciômetro para controlar a rotação do motor:
O programa abaixo para usar o servo com Arduino você pode encontrar no menu Arquivo -> Exemplos -> Servo -> Knob:
// Programa : Controlando a posicao de um servo usando potenciometro // Traducao e comentarios : Arduino e Cia // // Controlling a servo position using a potentiometer (variable resistor) // by Michal Rinott <http://people.interaction-ivrea.it/m.rinott> #include <Servo.h> Servo myservo; // create servo object to control a servo // Pino analgico do potenciometro int potpin = 0; // Variavel que armazena o valor lido do potenciometro int val; void setup() { // Define que o servo esta ligado a porta 9 myservo.attach(9); } void loop() { // Le o valor do potenciometro (valores entre 0 e 1023) val = analogRead(potpin); // Converte o valor pra ser usado no servo (valores entre 0 e 180) val = map(val, 0, 1023, 0, 179); // Move o eixo do servo, de acordo com o angulo myservo.write(val); // Aguarda o servo atingir a posição delay(15); }
O programa lê as informações do potenciômetro ligado à entrada analógica (valores de 0 a 1023), converte esses valores para serem usados no servo (0 a 180), e move o servo motor para a posição correspondente. Gire o potenciômetro nos 2 sentidos, e o servo irá acompanhar o movimento do potenciômetro.
Também podemos controlar o servo usando posições pré-estabelecidas, o que é muito útil quando precisamos usar o motor para movimentos repetitivos. Como no exemplo abaixo onde utilizei 3 chaves (push-button):
… e o seguinte programa:
// Programa : Controlando o servo com 3 chaves // Autor: Arduino e Cia #include <Servo.h> Servo myservo; int val; int ChaveEsquerda=3; //Pino a ser ligado na chave esquerda int ChaveCentral=4; //Pino a ser ligado na chave central int ChaveDireita=5; //Pino a ser ligado na chave direita void setup() { // Pino de dados do servo conectado ao pino 9 do Arduino myservo.attach(9); //Define o pino como entrada pinMode(ChaveEsquerda, INPUT); //Aciona o resistor pull-up interno digitalWrite(ChaveEsquerda, HIGH); pinMode(ChaveCentral, INPUT); digitalWrite(ChaveCentral, HIGH); pinMode(ChaveDireita, INPUT); digitalWrite(ChaveDireita, HIGH); } void loop() { //Le o valor da Chave Esquerda (On/Off) val=digitalRead(ChaveEsquerda); //Caso a chave seja pressionada, movimenta o servo if(val!=1) { myservo.write(60); //Move o servo para o angulo de 60 graus delay(15); //Delay para o servo atingir a posiçao } val=digitalRead(ChaveCentral); if(val!=1) { myservo.write(90); //Move o servo para o angulo de 90 graus delay(15); } val=digitalRead(ChaveDireita); if(val!=1) { myservo.write(120); //Move o servo para o angulo de 120 graus delay(15); } }
Ao pressionar o botão da esquerda, o servo se movimenta para a posição “60 graus”, o botão central leva à posição 90 graus, e o botão da direita, à posição 120 graus.
Parabéns! Excelente postagem, vou estar agendando uma visita sua aqui em nossa empresa, é possível?
Boa noite e obrigado pela visita ! Tenho interesse, por favor utilize o formulário de contato no lado direito da página para enviar uma mensagem privada e conversamos por email. Abraço.
Boa tarde, gostaria de saber como eu consigo fazer que o arduino comande um servomotor em 90 graus positivo ao apertar um botão, e após soltar o mesmo botão o braço do servo motor volte para posiçõ anterior
Boa noite !
Você pode usar o programa deste post como base, e definir o angulo de 90 graus quando o botão for acionado, e o angulo de 0 graus quando não houver alteração no estado do botão.
Se precisar de ajuda com a programação, entre em contato.
Abraço !
Boa noite, ainda trabalha com isso, se sim, poderia me ajudar com essa programação?
MUITO BOM EXCELENTE TRABALHO
Valeu Jorjão ! Abraço.
Cara, você sabe quantos servomotores podem ser controlados ao mesmo tempo com o arduino?
Boa noite,
Como eles utilizam apenas um pino para controle, você teoricamente pode ligar vários deles ao mesmo tempo. Mas… use alimentação externa, senão o Arduino não vai suportar tantos motores.
Quanto à biblioteca, a Servo permite o controle de até 12 motores.
Abraços !
Boa tarde!
Poderia me ajudar?
Consigo fazer meu servo se movimentar de 0 a 180 graus (indo e vindo), e no meio desse movimento quero que ao pressionar um botão o servo pare,veja quantos graus esta e ande mais 5 graus e se mantenha parado.
Explicando melhor: tenha uma garra robótica que ao detectar que pegou um objeto (botão foi pressionado) quero que ele veja quantos graus andou ( botão foi pressionado e estava em 90 graus) quero que ele ande mais 5 graus e pare (95 graus) (para detectar e segurar com firmeza o objeto)
Segue o código que tenho:
#include
Servo myservo; // create servo object to control a servo
// a maximum of eight servo objects can be created
int pos = 0; // variable to store the servo position
void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop()
{
for(pos = 0; pos < 180; pos += 1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for(pos = 180; pos>=1; pos-=1) // goes from 180 degrees to 0 degrees
{
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
Boa tarde Filipe,
Você pode utilizar comandos IF e WHILE dentro do código, mas não tenho certeza se irão funcionar. Talvez uma alternativa melhor seja acionar uma das interrupções do Arduino :
http://arduino.cc/en/Reference/Interrupts
Abraço !
Olá, amigo, esse micro servo é de baixa potência, certo ? será que é possível limitar no potenciômetro um movimento de + 45 e – 45º ? e pode ser ligado 3 servos no mesmo espaço para que eles se movam juntos ?
OI Marcos,
Exato. Você pode fazer isso no próprio programa, determinando que o servo não se movimente além dos 45 graus que você precisa. Você pode usar 3 servos ao mesmo tempo, contanto que cada um use uma porta do Arduino.
Abraço !
BOA NOITE.
PARABENS PELOS TRABALHOS E PELAS DICAS.
ATT,
THOMAZ
Bom dia Thomaz !
Muito obrigado. Aguardo sua visita sempre que puder.
Abraço !
Boa tarde,
Estou precisando de ajuda.
Possuo um trabalho que precisa ler o ângulo do potenciômetro sendo que o mesmo estando na posição central e deverá aparecer no LCD a indicação de 0 graus se virar o pot para direita devera ler em ordem positiva 1,2,,3,4….até 90 gruas, se for pra a esquerda deverá ser -1,-2,-3….ate -90 gruas.
O código abaixo lhe da de 0 a 180 contínuos.
Pode me ajudar…
#include // inclui a biblioteca LCD
LiquidCrystal lcd(8,9,4,5,6,7); // pinos conectados ao lcd
void setup() {
lcd.begin(16,2); // declara um lcd com 16 colunas e 2 linhas
}
void loop() {
int angle = analogRead(1); // Lê o valor do potenciômetro
angle=map(angle, 0, 1023, 0, 179); // Mapeia os valores de 0 a 180 graus
lcd.setCursor(0,0); /* define a posição do cursor */
lcd.print("GR: "); // printa Angulo
lcd.setCursor(4,0);
lcd.print(angle); /* printa a leitura do angulo de 0 a 180 */
if(angle < 10) { // se for menor que 10 apaga os digitos "sobrando"
lcd.setCursor(8,1);
lcd.print(" ");
}
if(angle < 100){
lcd.setCursor(9,1);
lcd.print(" ");
}
}
Boa tarde,
Você tem que alterar a linha do comando map. Fica assim :
angle=map(angle, 0, 1023, -90, 90);
Abraço !
Preciso de de uma orientação para seguinte questão baseado no código acima. quando apertar botão_1 servo vai a 180 graus e fica a demora delay(3000); bem devagar. e quando voltar a apertar o botão _1 ele vai a zero (0) grau no mesmo delay(3000); devagar. e fica até eu decidir novamente a ele ir para 180 mais só quando apertar o botão.desde já agradeço e parabéns pelo conteúdo do site recheado de excelentes matérias é o que precisamos para melhorar cada vez mais nossos conhecimentos. Obrigado
Como posso fazer essa combinação do botão e acionar o servo.
Boa tarde,
Para o controle da velocidade, usar o delay() não vai resolver o problema da velocidade. Tente usar a biblioteca VarSpeedServo :
https://github.com/netlabtoolkit/VarSpeedServo
Abraço !
Boa noite,
muito obrigado pela informação, funcionou perfeitamente,
Mais uma vez parabéns pelas dicas.
Att,
THOMAZ EDSON
Boa Noite!
Parabens pelas postagens!! Sempre muito boas!!
Tenho uma duvida, sou leigo no assunto mas seria possivel utilizar PushButton como "joystick" apenas criando um codigo para incrementar um angulo num determinado delay, relacionado com o tempo que o botão é pressionado?
Boa tarde Guilherme,
É possível sim, eu faço isso nesse post aqui, mas com motor de passo :
http://www.arduinoecia.com.br/2013/11/ligando-motor-de-passo-28byj-48-e.html
veja se consegue adaptar para um servo motor.
Abraço !
Boa noite,
preciso do caminho das pedras para fazer um motor de vidro elétrico funcionar como servo, vc teria alguma dica ou algum site.
Vi no youtube alguns porém não passam o circuito.
att,
THOMAZ EDSON
Boa tarde,
Infelizmente ainda não tenho nada nesse sentido.
Abraço !
Agradeço sempre pelo apoio.
Em meus trabalhos consegui fazer uma montagem perfeita, utilizando o circuito de um micro servo. Os fios que vão para o motor são retirados e colocadas duas lâmpadas usando o terra com referencia para cada lâmpada e dois LDR ligadas há uma ponte H. Conforme a lâmpada que acender o motor irá girar o ângulo correspondente. sendo que o potenciômetro do servo tem que estar no eixo do motor. Caso queira posso lhe enviar o circuito para postagem.
Desde já obrigado.
ATT,
THOMAZ EDSON
Boa noite Thomaz,
Queria ver essa engenhoca funcionando. 🙂 se puder, mande sim.
Abraço !
Boa tarde, gosto muito do trabalho de vocês, e gostaria de saber se tem como me ajudar em um projeto que estou fazendo, é que eu não sei quase nada da parte de programação, a princípio queria que vocês me dissessem se este código está certo, o objetivo é movimentar um servo através da váriação apontada pelo sensor reflexivo, :
#include
Servo garra;
int sensorpin = 7;
int val;
void setup()
{
garra.attach(9);
}
void loop()
{
val = digitalRead(sensorpin);
val = map(val, 0, 1023, 0, 60);
garra.write(val);
delay(15);
}
Ficarei grato se puderem me ajudar !
Boa noite Leonardo,
Me diga qual o tipo de sensor que vc vai utilizar.
Abraço !
Boa noite,
Estou precisando controlar 4 servo, com 2 chaves PushButton, 1 para +90 outra para -90. eles precisam funcionar independentes. Como eu faria ???
tem como me ajudar com o esquema de ligação e programação ??
muito obrigado
Boa tarde. Como fazer os cálculos para saber o peso que o servo levanta. Tipo, tenho uma tampa de 1 quilo e 25 centímetros. Como saber qual servo preciso para levar isso. O servo vai abrir uma lixeira.
Boa tarde Claudio,
Acho que esse link aqui pode te ajudar:
http://www.instructables.com/answers/Is-there-a-way-to-calculate-how-much-weight-a-serv/
Abraço!
boa tarde.
cara preciso controlar um servo motor, sendo controlado por dois sensores. assim um sensor aciona ele para 90 graus e o outro sensor traz ele para a posição anterior
Bom dia!
Preciso controlar 2 servos de 0 a 180 com 1 potenciômetro, sendo que, ao girar o potenciômetro um se mova no sentido horário e o outro anti-horário.
Bom dia,
Você pode fazer a programação inversa para cada motor, criando um objeto para o segundo motor com os comandos:
Servo myservo2;
myservo2.attach(8);
Abraço!
Boa tarde, como faço para controlar 2 servos motores com um controle remoto IR e o arduino uno?
Boa tarde,
Não tenho nenhum post com essa configuração, mas é uma boa sugestão para um post futuro.
De qualquer forma, você pode usar como base as informações deste post:
http://www.arduinoecia.com.br/2013/10/modulo-rele-4-canais-e-controle-remoto.html
Abraço!
Ola,
Gostaria de saber qual o codigo para controlar o servo por um determinado tempo e logo apos voltar para a posicao inicial, porem apertando o push-button uma vez so! a ideia seria para fazer uma valvula para uma maquina de cafe.
Agradeco desde ja.
boa tarde tentei fazer o servo mover com os três botão mas ele move direto e nao para fiz as mesma ligação que vc fez e o programa mas ele não para de movimentar poderia me ajudar por favor
Boa noite Hugo,
Qual seria a função de cada botão ?
Abraço!
o mesmo programa que vc fez para movimentar os servos mas nao foi.
so copie ele e colei o programa funcionou mas na pratica o servo nao moveu. o programa com tres botao que movimenta o servo nao funcionou na pratica as ligaçoes
me ajude por favor
Boa tarde,
É possível fazer um programa sem o potenciometro? Ligando o servo diretamente no arduino? E nesse programa queria o sevo andasse de um em um grau, tem como?
Desculpe se as duvidas são bestas mas estou começando agora.
Obrigada
Boa tarde Ana,
É possível sim, você pode substituir essa leitura do potenciometro por uma variavel, fica mais ou menos assim:
#include "Servo.h"
Servo myservo; // create servo object to control a servo
// Pino analgico do potenciometro
int potpin = 0;
// Variavel que armazena o valor lido do potenciometro
int val;
void setup()
{
// Define que o servo esta ligado a porta 9
myservo.attach(9);
}
void loop()
{
//valor para o servo entre 0 e 180 graus
for (int angulo = 0; i<179; i++)
{
myservo.write(angulo);
// Aguarda o servo atingir a posição
delay(35);
}
//Aguarda dois segundos e reinicia o processo
delay(2000);
}
Abraço!
Muito obrigada, vocês são muito atenciosos. Vou testar aqui 😀
Uma duvida:um servo SG90 usando um Nano, aguarda sinal de um sensor para movimentar o servo, mas enquanto não recebe o comando, o servo fica fazendo barulho como se estivesse ligado, eu li 5v no pino de comando do servo, isso é normal?
Bom dia Vanderlei,
Dependendo da programação, pode acontecer isso sim. O sinal que vc está lendo é analógico ? Talvez uma pequena variação nesse sinal pode fazer com que o servo se movimente.
Tente colocar alguma condição para que o servo se movimente, por exemplo. Ele só vai se movimentar se o ângulo for maior do que "X" graus.
Abraço!
Este foi o programa usado com um nano,copiei de um post daqui e modifiquei, funcionou perfeitamente por uns dias, mas acho que o nano queimou, parou e ficou com o led ligado e não aceita a programação e da erro, estou esperando outro chegar para continuar os testes.
Abraço!
#include
int pirPin1 = 3;
int pirPin2 = 5;
int val2;
int val1;
Servo myservo;
void setup()
{
myservo.attach(9);
pinMode(pirPin1, INPUT);
digitalWrite(pirPin1, LOW);
pinMode(pirPin2, INPUT);
digitalWrite(pirPin2, LOW);
}
void loop()
{
val1 = digitalRead(pirPin1);
val2 = digitalRead(pirPin2);
if (val1 == 1 && val2 != 1 )
{
myservo.write(40);
// delay(50);
}
val1 = digitalRead(pirPin1);
val2 = digitalRead(pirPin2);
if (val2 == 1 && val1 == 1 )
{
myservo.write(90);
// delay(50);
}
val1 = digitalRead(pirPin1);
val2 = digitalRead(pirPin2);
if (val2 == 1 && val1 != 1 )
{
myservo.write(140);
//delay(50);
}
}
Help,
referente ao exemplo do código com três botões, como faço para que o mesmo, com apenas dois botões gire o servo para os lados de cada botão. Ao apertar um dos botoes, gire 1 grau a cada apertar o botão.
att,
Thomaz
Ola Luciana eu tambem procuro um programa assim ….se conseguir me passe e se eu conseguir eu te passo….obrigado…
Boa tarde,
sabe como posso alterar a frequência do pwm para controle dos servos?
O pwm do arduino gera 500hz, queria alterar essa frequência, como posso proceder?
estou tendo um pouco de dificuldade para fazer um código para meu quadrupede de 8 servos será se vcs podem me ajudar?
boa noite. obrigado pelas postagens.
eu gostaria de ao inves de usar potenciometro ou push boton com posiçoes fixas para o servo motor usar as referencias de um RTC fazendo com que o servo motor movimente 1 grau a cada 3 minutos. como posso fazer isso? agradeço se puder ajudar.
Oi Valter!
Obrigado. Você pode colocar uma condição no programa do RTC para que a cada 3 minutos ele movimente o servo… Só não se esqueça que o servo geralmente vai só até 180 graus, então você tem que colocar uma condição para ele retornar à posição inicial quando atingir esse valor.
Quanto ao código, infelizmente não tenho ele pronto ainda, mas vou deixar como sugestão de post.
Abraço!
e como controlo com o arduino um servo motor de 1/4 cv de potencia. é por reles?
obrigado
Oi Valter,
Tem o modelo de servo que você vai usar ?
Abraço!
Ola, muito bom o post! Meus parabéns! Tenho uma dúvida, para controlar o servo motor tem que ser numa porta PWM?
Oi Alvaro!
Não, você pode usar qualquer porta.
Abraço!
Ola. Poderia me orientar na minha dúvida.? Obrigado
Oi Valter,
Respondido. Desculpe a demora. 🙂
Abraço!
posso colocar um motor de 5v no lugar do servo?
Oi Rafaela,
Até pode, se você não precisar realmente de um servo motor. Nesse caso, também vai precisar alterar algumas coisas no programa. 🙂
Abraço!
Ola.
Tenho uma duvida.
Como faria para o servo ficar girando sem parar e sem utilizar potenciometro?
Obrigada
Boa noite,
Comente a linha 30 (val = digitalRead… ) e inclua uma linha assim:
val=1;
Abraço!
Boa tarde meu nome é Carlos sou estudante de mecatrônica e meu projeto de conclusão vou usar o Arduino e o sensor de chuva para acionar um motor,eu queria saber como fica a programação, por eu quero que quando do chuver o motor gira para o sentido horário por 5 segundos, e quando para de chover e gira automaticamente sentido anti-horario,por 5 segundos teria como me ajudar com a programação,
Vou deixar meu EMAIL.
[email protected]
Olá! Você teria o esquema elétrico deste post do servo motor com os Knobs?
ola eu estou com um projeto para uma gincana e preciso de ajuda vai ter um único botão e quando aperta as vezes o motor aciona e as vezes não é tipo torta na cara só q dependendo da sorte
ola eu queria usar quatro botões para o meu servo um q de 90 graus outr de 180, um de 270 e o ultimo uma volta completa de 360 graus seria possivel isso ?
Alguém pode me ajudar? Como faço para o servo a cada duas horas mover 90° e voltar ao seu estado normal sem usar o delay ?Para não travar a programação…
Alguém pode me ajudar? Como faço para o servo a cada duas horas mover 90° e voltar ao seu estado normal sem usar o delay ?Para não travar a programação…
Ola, noa noite! Sou meio leigo no assunto mas vou tentar me expressar! Eu preciso controlar dois servos utilizando quatro botões em forma de cruz sendo que ao pressionar o botão para esquerda o servo "A" gire para esquerda ao pressionar o botão da direita o servo "A" gire para esquerda ao pressionar o botão acima o servo "B" gire para esquerda e ao pressionar o botão abaixo o servo "B" gire para a direita! Ao não ter nenhum botão pressionado ambos parem ao meio! Desde já agradeço
como faço para quando o servo estiver em 180 graus acender um led ?
Bom dia,
Coloque um "if" no programa, por exemplo, na linha 33:
if (val == 179)
{
digitalWrite(pinoled, HIGH)
}
Abraço!
Adilson
Boa noite…
Obrigado Adilson….
Abraço de Luis.
Boa tarde,
Gostava de ler o sinal do meu receptor RC com o Arduino, para com ele e mais um potenciometro direcionar um servo. Não consigo ler o sinal entre 0.1 e 0.2s direto do receptor RC no arduino…..
Já experimentei pelas analógicas e pelas digitais e não consegui. consigo ler os pulsos mas não os intervalos de tempo.
Quem poder dar uma dica agradeço [email protected]
O meu receptor faz 60hz
MUITO BOM!
onde posso baixar a biblioeca?
como aumenta ou diminui a velocidade do servo?
Olá, como faço para ligar 1 botão 3 posições?
Att.
Boa noite,
Que tipo de botão você tem aí? Tem um link pra eu dar uma olhada?
Abraço!
Adilson
o que e preciso faser para no codigo para comandar 3 servos com chave
Oi Alam,
Que tipo de controle você precisa e qual chave você vai usar?
Abraço!
Adilson
Bom dia amigo. Sabe se é possível criar algo assim: ao apertar um botão o servo gira 180. Apertar o mesmo botão ele gira 180 novamente. Mas sempre para o mesmo sentido de giro???
Obrigado
Oi André,
Dependendo do servo, você consegue modifica-lo para que ele tenha giro infinito, pois geralmente os servos vão somente até 180 graus.
Abraço!
Adilson
OBRIGADO POR ENSINAR FIZ O DO PUSHBUTTON E DEU CERTO E CONSEGUI FAZER UM OUTRO PROGRAMA DELE PARA MINHA NECESSIDADE DO MEU PROJETO COM PONTH293D. VALEU MUITO OBRIGADO.
Show! Valeu Horacio! 🙂
Abraço.
Adilson
Como eu faria para controlar o servo automaticamente por um periodo de tempo, exemplo começa em 0 de de 5seg vai pra 45 depois de mais 5 vai pra 90.
Oi Vitor,
Use o delay(). Ex.
delay(5000) //Aguarda 5 segundos
(comando para mover o servo até 45)
delay(5000) //Aguarda outros 5 segundos
(comando para mover o servo até 90)
Abraço!
Adilson
Olá, tenho uma dúvida quanto ao código utilizando um R3, um servo e um sensor de temperatura ( que substitui por um potenciômetro para testes).
Quando roda o programa, me parece que sempre ao reiniciar o loop, o servo tende a mexer, o movimento e mínimo, mas atrapalha. Não e sempre que acontece, já coloquei duas condições em conjunto (posição do servo mais temperatura) para tentar evitar o problema mas sem sucesso. Alguém pode me dizer se e o problema e no software ou no hardware?
Segue o código:
#include
int j = 0;
int i = 0;
Servo servo_3;
void setup()
{
pinMode(A0, INPUT);
servo_3.attach(3);
Serial.begin(9600);
}
void loop()
{
j = map(analogRead(A0), 0, 1023, 0, 100);
if (j > 30 && servo_3.read() <= 0) {
for (i = 0; i <= 90; i += 1) {
servo_3.write(i);
delay(25);
}
} else {
if (j = 90) {
for (i = 90; i >= 0; i -= 1) {
servo_3.write(i);
delay(25);
}
}
}
Serial.print(“Temperatura: “);
Serial.print(j);
Serial.println(“C.”);
delay(500);
Serial.print(“Servo em = “);
Serial.print(servo_3.read());
Serial.println(” graus”);
delay(1000);
}
Detalhe, a intenção e que o servo gire para 90 graus a partir de que o sensor de temperatura marque 30C° ou mais, e retorne a posição de 0C° ao marcar uma temperatura menor que 30C°
Um veiculo importado muito refinado teve seu computador de bordo queimado.fomos chamados para criar uma solução paleativa para ajudar ajudar o dono levar até a autorizada. este veiculo possui alimentação da bateria de 5v. foram solicitados algumas ´remissas que devem ser cumpridas considerando as seguintes regras.
*Usará um botão opara a ignição, um para leitura da porta do passageiro e outro para verficar a ré.
*O circuito proposto que acionara o motordo veiculo;
*Para o funcionamento , o veiculo apenas ligara caso a tensão da bateria esteja entre 3,75v e 5v, caso contrario o carro não liga, ou se estiver *ligado, desliga automaticamente;
*Considerando o carro na tensão possivél de trabalho comentada anteriormente, a porta do passageiro deve estar aberta e a marcha a ré engatada para que o botão de partida consiga ligar o carro, pressionando e soltando apenas uma vez;
*Ao pressionar mais uma vez, tendo o veiculo em funcionamento, este desliga sem qualquer necessidade de porta ou marcha a ré acionados;
preciso saber como fazer esse circuito no arduino e a montagem no Simulide ou em outro simuladador obrigado.