alguém me ajuda a entender essa programação? ( arduino)
27/08/2018
0
int AIA = 9; // (pwm) pino 9 conectado ao pino A-IA do M�dulo
int AIB = 8; // (pwm) pino 8 conectado ao pino A-IB do M�dulo
int BIA = 7; // (pwm) pino 7 conectado ao pino B-IA do M�dulo
int BIB = 6; // (pwm) pino 6 conectado ao pino B-IB do M�dulo
byte frente=255;
byte voltar=200;
byte speed1 = 255;
byte speed2 = 255;// Mude este valor (0-255) para controlar a velocidade dos motores
byte speedv1 = 255;
byte speedv2 = 255;
byte sensor2 = 12;//Pino que deve se conectar a sa�da (out) do sensor
byte sensor1 = 11; //Pino que deve se conectar a sa�da (out) do sensor
void setup() {
pinMode(AIA, OUTPUT); // Colocando os pinos como sa�da
pinMode(AIB, OUTPUT);
pinMode(BIA, OUTPUT);
pinMode(BIB, OUTPUT);
}
void loop() {
if(!digitalRead(sensor2))
{
speed2=frente;
speedv2=0;
}else{
speed2=0;
speedv2=voltar;
}
if(!digitalRead(sensor1))
{
speed1=frente;
speedv1=0;
}else{
speed1=0;
speedv1=voltar;
}
fretenteroda1();
fretenteroda2();
}
void fretenteroda1()
{
analogWrite(AIA, speed1);
analogWrite(AIB, speedv1);
}
void fretenteroda2()
{
analogWrite(BIA, speed2);
analogWrite(BIB, speedv2);
}
int AIB = 8; // (pwm) pino 8 conectado ao pino A-IB do M�dulo
int BIA = 7; // (pwm) pino 7 conectado ao pino B-IA do M�dulo
int BIB = 6; // (pwm) pino 6 conectado ao pino B-IB do M�dulo
byte frente=255;
byte voltar=200;
byte speed1 = 255;
byte speed2 = 255;// Mude este valor (0-255) para controlar a velocidade dos motores
byte speedv1 = 255;
byte speedv2 = 255;
byte sensor2 = 12;//Pino que deve se conectar a sa�da (out) do sensor
byte sensor1 = 11; //Pino que deve se conectar a sa�da (out) do sensor
void setup() {
pinMode(AIA, OUTPUT); // Colocando os pinos como sa�da
pinMode(AIB, OUTPUT);
pinMode(BIA, OUTPUT);
pinMode(BIB, OUTPUT);
}
void loop() {
if(!digitalRead(sensor2))
{
speed2=frente;
speedv2=0;
}else{
speed2=0;
speedv2=voltar;
}
if(!digitalRead(sensor1))
{
speed1=frente;
speedv1=0;
}else{
speed1=0;
speedv1=voltar;
}
fretenteroda1();
fretenteroda2();
}
void fretenteroda1()
{
analogWrite(AIA, speed1);
analogWrite(AIB, speedv1);
}
void fretenteroda2()
{
analogWrite(BIA, speed2);
analogWrite(BIB, speedv2);
}
Victor
Curtir tópico
+ 0
Responder
Post mais votado
28/08/2018
// definição de variáveis do tipo 'inteiro' que indicam quais pinos do arduino serão conectados ao módulo int AIA = 9; // (pwm) pino 9 conectado ao pino A-IA do Módulo int AIB = 8; // (pwm) pino 8 conectado ao pino A-IB do Módulo int BIA = 7; // (pwm) pino 7 conectado ao pino B-IA do Módulo int BIB = 6; // (pwm) pino 6 conectado ao pino B-IB do Módulo // variáveis do tipo 'byte' que indicam se o motor vai girar pra frente ou voltar // e também indicam a velocidade de movimentação desses motores, quando indo pra frente ou voltando byte frente = 255;// Mude este valor (0-255) para controlar a velocidade dos motores (indo pra frente) byte voltar = 200;// Mude este valor (0-255) para controlar a velocidade dos motores (voltando) byte speed1 = 255; byte speed2 = 255; byte speedv1 = 255; byte speedv2 = 255; // definição de variáveis do tipo 'byte' que indicam quais pinos do arduino serão conetados aos sensores byte sensor2 = 12; //Pino que deve se conectar a saída (out) do sensor byte sensor1 = 11; //Pino que deve se conectar a saída (out) do sensor // função de 'configuração', que será executada assim que o arduino for energizado ou resetado // esta função vai configurar os pino 9, 8, 7 e 6 como pinos de saída de dados (você manda informação/comandos pra eles) void setup() { pinMode(AIA, OUTPUT); // Colocando os pinos como saída pinMode(AIB, OUTPUT); pinMode(BIA, OUTPUT); pinMode(BIB, OUTPUT); } // função que será chamada imediatamente após a execução da rotina setup(), e será executada 'eternamente', até que o arduino seja desligado void loop() { if(!digitalRead(sensor2)) // lê o valor do pino 12 (ON/OFF - TRUE/FALSE) { // se o pino 12 estiver OFF/FALSE speed2=frente; // atribui 255 à variável speed2 speedv2=0; // atribui 0 à variável speedv2 }else{ // se o pino 12 estiver ON/TRUE speed2=0; // atribui 0 à variável speed2 speedv2=voltar; // atribui 200 à variável speedv2 } if(!digitalRead(sensor1)) // lê o valor do pino 11 (ON/OFF - TRUE/FALSE) { // se o pino 11 estiver OFF/FALSE speed1=frente; // atribui 255 à variável speed1 speedv1=0; // atribui 0 à variável speedv1 }else{ // se o pino 11 estiver ON/TRUE speed1=0; // atribui 0 à variável speed1 speedv1=voltar; // atribui 200 à variável speedv1 } fretenteroda1(); // chama a função que manipula a roda1 fretenteroda2(); // chama a função que manipula a roda2 } // função que manipula a roda1 void fretenteroda1() { analogWrite(AIA, speed1); // envia para o pino 9 o conteúdo de speed1 (que pode ser 0 ou 255) analogWrite(AIB, speedv1); // envia para o pino 8 o conteúdo de speedv1 (que pode ser 0 ou 200) } void fretenteroda2() { analogWrite(BIA, speed2); // envia para o pino 7 o conteúdo de speed2 (que pode ser 0 ou 255) analogWrite(BIB, speedv2); // envia para o pino 6 o conteúdo de speedv2 (que pode ser 0 ou 200) }
isto provavelmente é pra um robô/carrinho que possui dois sensores e será movimentado em função do estado de cada um desses sensores.
Emerson Nascimento
Responder
Clique aqui para fazer login e interagir na Comunidade :)