*10+Buffer_1[4] & 15;
O &15 serve para converter Ascii para casa decimal.
Por ex um 0x32, que é o '2' vira só 2.
Certamente existem formas mais polidas.
Mas compilem e comparem o tempo de execução e tamanho do código..
…
xa com arduino acredito ser bastante fácil.
Aqui vai o códico.
#include <Stepper.h>
#define STEPS 200
Stepper stepper1(STEPS, 2, 3, 4, 5);Stepper stepper2(STEPS, 6, 7, 8, 9);Stepper stepper3(STEPS, 10, 11, 12, 13);
// Preciso modificar para a situação abaixo, porque quero colocar mais motores// e com o arduino uno só consigo 3 motores. Por isso comprei drivers A4988,// mas preciso de ajuda para fazer as modificações necessárias para os motores// corresponderem da forma que pretendo.
// Stepper stepper1(STEPS, 2, 3); // 2 dir e 3 step// Stepper stepper2(STEPS, 4, 5); // 4 dir e 5 step// Stepper stepper3(STEPS, 6, 7); // 6 dir e 7 step
void setup(){// Velocidade dos Motores em RPM stepper1.setSpeed(60); stepper2.setSpeed(60); stepper3.setSpeed(300);}void loop(){ stepper1.step(30); // Roda 54 graus stepper2.step(-30); // Roda -54 graus stepper3.step(1000); // Roda 5 voltas delay(2000); stepper3.step(-1000); // Roda -5 voltas stepper1.step(70); // Roda 126 graus stepper1.step(-100); // Roda -180 graus stepper2.step(-70); // Roda -126 graus stepper2.step(100); // Roda 180 graus}
Agradeço desde já a quem quiser ajudar-me
Abraço.…
Adicionado por Rui Carlos ao 6:26 em 30 junho 2016
fazendo com o l293d e nao coloque os numeros certo dos botoes ainda mas me ajude ai o codigo e esse
#include <IRremote.h>int RECV_PIN = 2; // Diz que o receptor IR esta conectado no pino 12
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup(){ Serial.begin(9600); // Abre a porta serial. irrecv.enableIRIn(); // Inicia o receptor IR. pinMode(3, OUTPUT); // Pino do Motor 1 pinMode(4, OUTPUT); // Pino do Motor 1 pinMode(5, OUTPUT); // Pino do Notor 2 pinMode(6, OUTPUT); // Pino do Motor 2 }void loop(){ if (irrecv.decode(&results)) { Serial.println(results.value, DEC); // Envia o codigo do botão pressionado para a porta serial. irrecv.resume(); } // Motor Reto if (results.value == 10000000){ digitalWrite(3, HIGH);} //Motor_1 reto if (results.value == 10000000){ digitalWrite(4, LOW);} //Motor_1 reto if (results.value == 10000000){ digitalWrite(5, HIGH);} //Motor_2 reto if (results.value == 10000000){ digitalWrite(6, LOW);} //Motor_2 reto // Motor Ré if (results.value == 20000000){ digitalWrite(3, LOW);} //Motor_1 Ré if (results.value == 20000000){ digitalWrite(4, HIGH);} //Motor_1 Ré if (results.value == 20000000){ digitalWrite(5, LOW);} //Motor_2 Ré if (results.value == 20000000){ digitalWrite(6, HIGH);} //Motor_2 Ré // Motor para direita if (results.value == 30000000){ digitalWrite(3, HIGH);} //Motor_1 direita if (results.value == 30000000){ digitalWrite(4, LOW);} //Motor_1 direita if (results.value == 30000000){ digitalWrite(5, LOW);} //Motor_2 esquerda if (results.value == 30000000){ digitalWrite(6, HIGH);} //Motor_2 esquerda // Motor para Esquerda if (results.value == 40000000){ digitalWrite(3, LOW);} //Motor_1 esquerda if (results.value == 40000000){ digitalWrite(4, HIGH);} //Motor_1 esquerda if (results.value == 40000000){ digitalWrite(5, HIGH);} //Motor_2 direita if (results.value == 40000000){ digitalWrite(6, LOW);} //Motor_2 direita // Motor Freio if (results.value == 50000000){ digitalWrite(3, LOW);} //Motor_1 parar if (results.value == 50000000){ digitalWrite(4, LOW);} //Motor_1 parar if (results.value == 50000000){ digitalWrite(5, LOW);} //Motor_2 parar if (results.value == 50000000){ digitalWrite(6, LOW);} //Motor_2 parar}…
deve ligar no Uno comando[1] = 2; //1° Caracter da potencia comando[2] = 5; //2° Caracter da potencia comando[3] = 5; //3° Caracter da potencia
//Forma um char assim: 4255 (onde 255 é a potencia máxima da minha lampada 4 do Uno)
Wire.beginTransmission(2); //Comunica com Uno que é o Slave 2. Wire.write(comando); // "Escreve" o comando para ele. Wire.endTransmission(2); //Encerra a transmissão.
Abraços…
Adicionado por Tiago Struck ao 22:06 em 27 junho 2013
rca de preto onde o sensor sabe a posição da tela, do lado de cima e baixo tem um motor de 24V onde o de cima roda puxando a tela o de baixo puxando a tela, cara propaganda fica de 3 a 5 segundo ai puxa pra cima aparece outra propaganda e fica 3 a 5 segundos assim que termina o sensor identifica e faz do lado inverso.
onde consigo esta programação sensor e reles para fazer o desparo dos motores.
Obrigado a todos,
…
ile( i> 0 && i<8) { lcd.setCursor(0,0); LerTecla(); if(i==1){lcd.print(" Entre com Ano ");} if(i==2){lcd.print(" Entre com Mes ");} if(i==3){lcd.print(" Entre com Dia ");} if(i==4){lcd.print(" Entre cm Semana");} if(i==5){lcd.print(" Entre com Hora ");} if(i==6){lcd.print(" Entre com Minut");} if(i==7){lcd.print(" Entre com Segun");} if(UP){acertahora[i]++;estouro = 0;UP = 0;} //alteração custela if (DOWN && acertahora[i] >= 0){acertahora[i]--;estouro = 0; DOWN = 0;} //alteração custela
if (SELECT){i ++;estouro = 0; SELECT = 0;
delay(200);} //alteração custela
if(acertahora[1] < 1 ){acertahora[1] = 13;} if(acertahora[2] > 12){acertahora[2] = 1;}
if(acertahora[2] == 0){acertahora[2] = 12;}
if(acertahora[3] > 31){acertahora[3] = 1;}
if(acertahora[3] == 0){acertahora[3] = 31;}
if(acertahora[4] > 6){acertahora[4] = 0;}
if(acertahora[4] == -1){acertahora[4] = 6;}
if(acertahora[5] > 23){acertahora[5] = 0;}
if(acertahora[5] == -1){acertahora[5] = 23;}
if(acertahora[6] > 59){acertahora[6] = 0;}
if(acertahora[6] == -1){acertahora[6] = 59;}
if(acertahora[7] > 59){acertahora[7] = 0;}
if(acertahora[7] == -1){acertahora[7] = 59;}
lcd.setCursor(9, 1);
lcd.print(acertahora[i], DEC);lcd.print(" ");
if(estouro == 90){ i = 0 ; estouro = 0;}
}
DS1307.setDate(acertahora[1], acertahora[2], acertahora[3], acertahora[4], acertahora[5], acertahora[6], acertahora[7]); // AQUI ENVIAMOS OS DADOS DEFINIDOS PARA O REAL TIME CLOK lcd.clear();
}
Gostaria de implementar essa logica do switch(case) no if(acertahora[4] para ao invés de aparecer os números aparecer os dias da semana conforme case abaixo. Qualquer ajuda sera bem vinda.
//valores case RTC int semana ; // Valores recolhidos
String d_semana; // Para texto LCD
semana == acertahora[4]; //Traduzir valor de dia de semana para texto
switch(semana){
case 1:
d_semana = "DOMINGO";
break;
case 2:
d_semana = "SEGUNDA";
break;
case 3:
d_semana = "TERCA";
break;
case 4:
d_semana = "QUARTA";
break;
case 5:
d_semana = "QUINTA";
break;
case 6:
d_semana = "SEXTA";
break;
case 7:
d_semana = "SABADO";
break;
}…