Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // variaveis
- int p1,p2,p3,p4; // Pinos do motor conforme o circuito base.
- byte i;
- unsigned long t;
- int x = 0;
- String ler;
- int numero;
- int j=0;
- char letra;
- // funcoes
- void left(byte B);
- void right(byte B);
- void halfl(int N);
- void halfr(int N);
- void motor(int posicao,int velocidade);
- int setVelMotor(int _vel);
- void setMotor(int _p1, int _p2, int _p3, int _p4);
- void setup() {
- Serial.begin(9600);
- Serial.print("\n\n\n");
- Serial.print("Digita a direcao e a velocidade\n[ l => left ]\n[ r => right ]\nEX => r10 (right 10 miliseconds por rotacao)\n>> ");
- p1 = 2;
- p2 = 3;
- p3 = 4;
- p4 = 5;
- setMotor(p1, p2, p3, p4);
- i = 1;
- t = millis();
- }
- void loop() {
- if (Serial.available() > 0){
- ler = Serial.readString();
- Serial.print(ler);
- Serial.print("\n");
- for (i = 0; ler[i]; i++ )
- {
- if (ler[i] == 'l') {
- letra = 'l';
- ler[i]= '0';
- numero = ler.toInt();
- }
- if (ler[i] == 'r') {
- letra = 'r';
- ler[i] = '0';
- numero = ler.toInt();
- }
- }
- if (letra == 'l') motor(1,numero);
- if (letra == 'r') motor(0,numero);
- }
- }
- void setMotor(int _p1, int _p2, int _p3, int _p4)
- {
- pinMode(_p1,OUTPUT);
- pinMode(_p2,OUTPUT);
- pinMode(_p3,OUTPUT);
- pinMode(_p4,OUTPUT);
- }
- void motor(int posicao,int velocidade){
- int vel;
- vel = setVelMotor(velocidade);
- switch(posicao){
- case 0:
- for (x = 0; x < 100;x++ ){
- Serial.print(x);
- Serial.print(":");
- if ((millis() - t) > 20 ) {
- right(i);
- i *= 2;
- if (i > 8) i = 1;
- delay(vel); // a bad usar sapoha de delay
- }
- }
- break;
- case 1:
- for (x = 0; x < 100; x++){
- Serial.print(x);
- Serial.print(".");
- if ((millis() - t) > 20 ) {
- left(i);
- i *= 2;
- if (i > 8) i = 1;
- delay(vel); // a bad usar sapoha de delay
- }
- }
- }
- }
- int setVelMotor(int rpm)
- {
- t = 60000 /(rpm * 64);
- return t;
- }
- void left(byte B) {
- bool bit;
- byte aux = B;
- bit = aux % 2;
- digitalWrite(p1, bit);
- aux = aux >> 1;
- bit = aux % 2;
- digitalWrite(p2, bit);
- aux = aux >> 1;
- bit = aux % 2;
- digitalWrite(p3, bit);
- aux = aux >> 1;
- bit = aux % 2;
- digitalWrite(p4, bit);
- }
- void right(byte B) {
- bool bit;
- byte aux = B;
- bit = aux % 2;
- digitalWrite(p4, bit);
- aux = aux >> 1;
- bit = aux % 2;
- digitalWrite(p3, bit);
- aux = aux >> 1;
- bit = aux % 2;
- digitalWrite(p2, bit);
- aux = aux >> 1;
- bit = aux % 2;
- digitalWrite(p1, bit);
- }
- void halfl(int N){
- int n[8] = {8, 12, 4, 6, 2, 3, 1, 9};
- int i;
- for (i=0, i<8, i++){
- int aux = N[i];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement