Iniciou esta discussão. Última resposta de Joao Vitor 19 Fev, 2019. 1 Resposta 0 Curtiram isto
Ola Pessoal, estou querendo automatizar minha cortina da sala e gostaria de saber se alguém poderia desenvolver um código para o arduino onde eu aperto um botao e o motor de passo gira no sentido…Continuar
Iniciou esta discussão. Última resposta de mineirin RV 19 Dez, 2017. 11 Respostas 0 Curtiram isto
Bom dia a Todos!Estou fazendo um contador digital para contar a metragem que uso de filamento na minha impressora 3D o codigo ja funcionou o problema é quando desligo e ligo de novo o arduino a…Continuar
Iniciou esta discussão. Última resposta de Marcelo Mosczynski 29 Ago, 2017. 7 Respostas 0 Curtiram isto
Ola a Todos estou precisando de uma ajuda montei um mini braço robotico usando 4 servos motores SG90, controlado por potenciometros o que esta acontecendo é quando estou com ele ligado os servos…Continuar
Tags: robotico, eletronica, braço, arduino, Motor
Iniciou esta discussão. Última resposta de Adriano 22 Abr, 2017. 2 Respostas 0 Curtiram isto
Ola, estou com uma duvida onde achei um projeto de uma cnc para PCB onde utiliza dois motores de passo e um servo motor, nesse projeto o cara usou o Driver ULN2003A que sao ligados 4 fios do arduino…Continuar
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
Caixa de Recados (1 comentário)
Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!
Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
Olá Adriano,
Creio que o problema esta no tempo de delay de 250ms, aumentei para 2000 e parece que ficou estavel, lembre-se de que as entradas dos botoes, devem ter uma R de 10K ligada no GND, para garantir que se o botão não estiver pressionado esteja no nivel GND.
int led1 = 10; // Pino da Luz da Sala
int led2 = 9; // Pino da Luz da Cozinha
int led3 = 8; // Pino do Ventilador
boolean status1 = false; // variavel para o status da Luz da Sala
boolean status2 = false; // variavel para o status da Luz da Cozinha
boolean status3 = false; // variavel para o status do Ventilador
void setup() {
Serial.begin(9600); // inicializa a comunicação serial na velocidade 9600
pinMode(led1, OUTPUT); //<-l
pinMode(led2, OUTPUT); // > define os pinos do leds como saída
pinMode(led3, OUTPUT); //<-l
digitalWrite(led1, LOW); //<-l
digitalWrite(led2, LOW); // > inicia os leds desligados
digitalWrite(led3, LOW); //<-l
}
void loop() {
char comando = Serial.read(); // variavel para ler o dados da serial
// realiza a leitura do pino que vai estar a chave
int chave1 = digitalRead(4); // para controlar o led branco
int chave2 = digitalRead(3); // para o led azul
int chave3 = digitalRead(2); // para o led verde
if (chave1 == HIGH) { // se a chave for pressionada (obter valor alto)
if (status1) { // verifica se o led está ligado ou desligado de acordo com a variável booleana
// executa essa parte se ele estiver ligado
digitalWrite(led1, LOW); // desliga o led
status1 = false; // muda o status para false para que na proxima vez ele identifique como desligado
Serial.println("1of"); // envia a string para informar que o led foi desligado
} else {
// executa essa parte se ele estiver desligado
digitalWrite(led1, HIGH); // liga o led
status1 = true; // // muda o status para true para que na proxima vez ele identifique como ligado
Serial.println("1on"); // envia a string para informar que o led foi ligado
}
delay(2000); // tempo para que não fique dando conflito e o led fique ligando e desligado ao pressionar
}
if (chave2 == HIGH) {
if (status2) {
digitalWrite(led2, LOW);
status2 = false;
Serial.println("2of");
} else {
digitalWrite(led2, HIGH);
status2 = true;
Serial.println("2on");
}
delay(2000);
}
if (chave3 == HIGH) {
if (status3) {
digitalWrite(led3, LOW);
status3 = false;
Serial.println("3of");
} else {
digitalWrite(led3, HIGH);
status3 = true;
Serial.println("3on");
}
delay(2000);
}
if(comando == 'a') { // se na serial receber o caracter 'a'
if (status1) { // do mesmo modo como na explicação acima
digitalWrite(led1, LOW);
status1 = false;
Serial.println("1of");
} else {
digitalWrite(led1, HIGH);
status1 = true;
Serial.println("1on");
}
}
if(comando == 'b') {
if (status2) {
digitalWrite(led2, LOW);
status2 = false;
Serial.println("2of");
} else {
digitalWrite(led2, HIGH);
status2 = true;
Serial.println("2on");
}
}
if(comando == 'c') {
if (status3) {
digitalWrite(led3, LOW);
status3 = false;
Serial.println("3of");
} else {
digitalWrite(led3,HIGH);
status3 = true;
Serial.println("3on");
}
}
if(comando == 's') { // se receber o caracter 's' ele deve retonar com o status de todos os 3 leds
if (status1) { // verifica se o led está ligado ou desligado de acordo com a variável booleana
// se estiver ligado
Serial.println("1on"); // envia a string para informar que o led está ligado
} else {
// se estiver desligado
}
}
}