Machine !!!! Hoje vamos trabalhar com algo que vi um pouco nas materias de programação, e que tive muita duvida ,esse tutorial vamos entender como converter e pegar resto em binario
* Convertendo pra binario
12 / 2 = 6 => resto é 0
6 / 2 = 3 => resto é 0
3 / 2 = 1 => resto é 1
repete o ultimo no caso fica 1,1,0,0 seguindo a ultima
1,1,0,0
0,1,1,0
0,0,1,1
a função fica assim
passos.ino
#define b0 2
#define b1 3
#define b2 4
#define b3 5
byte i;
unsigned long t;
int x;
void enviaBits(byte B);
void setup() {
Serial.begin(9600);
pinMode(b0,OUTPUT);
pinMode(b1,OUTPUT);
pinMode(b2,OUTPUT);
pinMode(b3,OUTPUT);
i = 1;
t = millis(); // tempo inicial
}
void loop() {
for (x = 0; x < 100; x++){
if ( (millis()-t) >20 ){
enviaBits(i);
i *= 2;
if(i > 8) i = 1;
delay(10); // RUIM
// t = millis(); // atualiza o valor da contagem
}
}
}
//****************//
void enviaBits(byte B){
bool bit;
byte aux = B;
bit = aux % 2;
digitalWrite(b0,bit);
aux = aux>>1;
bit = aux % 2;
digitalWrite(b1,bit);
aux = aux>>1;
bit = aux % 2;
digitalWrite(b2,bit);
aux = aux>>1;
bit = aux % 2;
digitalWrite(b3,bit);
}
* Convertendo pra binario
12 / 2 = 6 => resto é 0
6 / 2 = 3 => resto é 0
3 / 2 = 1 => resto é 1
repete o ultimo no caso fica 1,1,0,0 seguindo a ultima
1,1,0,0
0,1,1,0
0,0,1,1
a função fica assim
passos.ino
#define b0 2
#define b1 3
#define b2 4
#define b3 5
byte i;
unsigned long t;
int x;
void enviaBits(byte B);
void setup() {
Serial.begin(9600);
pinMode(b0,OUTPUT);
pinMode(b1,OUTPUT);
pinMode(b2,OUTPUT);
pinMode(b3,OUTPUT);
i = 1;
t = millis(); // tempo inicial
}
void loop() {
for (x = 0; x < 100; x++){
if ( (millis()-t) >20 ){
enviaBits(i);
i *= 2;
if(i > 8) i = 1;
delay(10); // RUIM
// t = millis(); // atualiza o valor da contagem
}
}
}
//****************//
void enviaBits(byte B){
bool bit;
byte aux = B;
bit = aux % 2;
digitalWrite(b0,bit);
aux = aux>>1;
bit = aux % 2;
digitalWrite(b1,bit);
aux = aux>>1;
bit = aux % 2;
digitalWrite(b2,bit);
aux = aux>>1;
bit = aux % 2;
digitalWrite(b3,bit);
}
Comentários
Postar um comentário