Jump to content

  • Log In with Google      Sign In   
  • Create Account

Photo

Arduino Nano


  • Please log in to reply
102 replies to this topic

#91 OFFLINE   pauly

pauly

    Membru

  • Membru activ
  • PipPip
  • 191 posts
  • Locatie:Ploiesti

Posted 11 January 2018 - 05:08 PM

Imi poate spune si mie cineva, care sunt pinii corespunzatori comenzilor urmatoare?

 

else if (dataIn == 'U'){//Lumini spate pornite
determinant = 'U';
}
else if (dataIn == 'u'){//Lumini spate stinse
determinant = 'u';
}
else if (dataIn == 'W'){//Lumini fata pornite
determinant = 'W';
}
else if (dataIn == 'w'){//Lumini fata oprite
determinant = 'w';
}
else if (dataIn == 'V'){//Claxon pornit
determinant = 'V';
}
else if (dataIn == 'v'){//Claxon oprit
determinant = 'v';
}
else if (dataIn == 'X'){//Extra On
determinant = 'X';
}
else if (dataIn == 'x'){//Extra Off
determinant = 'x';



Cu_reclama

Cu_reclama
  • Membri
    ********

#92 OFFLINE   nico_2010

nico_2010

    Membru avansat

  • Moderatori
  • 2,033 posts
  • Locatie:Bucuresti

Posted 11 January 2018 - 05:39 PM

Si restul sketch-ului unde este? Pentru ca altfel, literele (si doar ele) sunt caractere receptionate pe portul serial.

#93 OFFLINE   pauly

pauly

    Membru

  • Membru activ
  • PipPip
  • 191 posts
  • Locatie:Ploiesti

Posted 11 January 2018 - 05:59 PM

Este cel de la pag. 5  #67 icon_share.png  , cel facut cu d-voastra.  Nu am vrut sa-l pun din nou aici pentru ca ocupa spatiu prea mult.



#94 OFFLINE   Elison

Elison

    Membru

  • Membru activ
  • PipPip
  • 282 posts
  • Locatie::

Posted 12 January 2018 - 12:26 AM

Motoarele sunt conectate la doua drivere L293D, aceste drivere sunt comandate prin intermediul unui circuit shift register de opt biti 74HCT595.

Comunicarea dintre modulul arduino si shield-ul pentru motoare se face intr-un fel mult mai complicat decat va imaginati d-voastra acum.

Daca doriti sa incercati sa intelegeti cum are loc comanda motoarelor,unde sunt legate, care sunt pinii de care depinde sensul sau viteza de rotatie, trebuie sa cititi neaparat acest document si sa studiati si schema shield-ului.



#95 OFFLINE   pauly

pauly

    Membru

  • Membru activ
  • PipPip
  • 191 posts
  • Locatie:Ploiesti

Posted 12 January 2018 - 11:23 AM

OK. Am citit, cu toate ca nu am inteles mai nimic. Dar eu nu am vorbit de comanda motoarelor. Eu am intrebat despre Lumini fata, Lumini spate si Claxon.

Mai precis, care sunt pinii de care sa ma leg pentru a obtine aprinderea luminilor si functionarea claxonului.

Am incercat sa trimit pe serial literele corespunzatoare, dar nu se intampla nimic.

Deasemeni, am incercat sa trimit de pe aplicatie si sa masor tensiunea pe pini. Nu am descoperit misterul.

 

Stiu, nu este obligatoriu sa am lumini, claxon, dar daca tot exista in sketchi, am incercat din curiozitate. 

Am incercat si varianta cu viteza;  1; 2; 3; 4; 5; 6; 7; 8; 9; q; care functioneaza perfect.

De ce nu ar functiona si Luminile daca tot sunt?



#96 OFFLINE   nico_2010

nico_2010

    Membru avansat

  • Moderatori
  • 2,033 posts
  • Locatie:Bucuresti

Posted 12 January 2018 - 12:03 PM

Nu functioneaza pentru ca nu sunt implementate functiile respective. Asta trebui s-o faceti dvs. asignand pinii cei mai convenabili.



#97 OFFLINE   pauly

pauly

    Membru

  • Membru activ
  • PipPip
  • 191 posts
  • Locatie:Ploiesti

Posted 12 January 2018 - 12:19 PM

Ok.Dar cum? Dacă mă pricepeam nu mai întrebăm. Dati-mi un exemplu cel puțin . Eu am ocupați următorii pini; pinul RX și TX pentru BLUETOOTH, pinii 8 și 9 pentru senzorul ultrasonic. Restul pinilor sunt liberi. Dati-mi va rog macar un exemplu daca nu-mi puteți spune cu exactitate ce și cum sa fac (unde și ce trebuie sa editez).

#98 OFFLINE   Elison

Elison

    Membru

  • Membru activ
  • PipPip
  • 282 posts
  • Locatie::

Posted 12 January 2018 - 12:35 PM

/*
Author: Marcelo Moraes

                    
This project contains public domain code.
The modification is allowed without notice.

*/

//Libraries
#include <AFMotor.h>

//Objects
AF_DCMotor motorRight(1, MOTOR12_64KHZ); // create motor #1, 64KHz pwm
AF_DCMotor motorLeft(2, MOTOR12_64KHZ); // create motor #3, 64KHz pwm

//Constants and variable
char dataIn = 'S';
char determinant;
char det;
int vel = 100; //Bluetooth Stuff
int vel_stop = 0;
int luminafata = 13;//13 si 2 sunt pinii arduino care comanda luminile fata si spate
int luminaspate = 2;

void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps

///////////////////////////////////////////////////////
pinMode(luminafata, OUTPUT);
pinMode(luminaspate, OUTPUT);
///////////////////////////////////////////////////////

//Initalization messages
Serial.println("ArduinoBymyself - ROVERBot");
Serial.println(" AF Motor test!");

//turn off motors
motorRight.setSpeed(0);
motorLeft.setSpeed(0);
motorRight.run(RELEASE);
motorLeft.run(RELEASE);

//////////////////////////////////////////////////
//se porneste cu luminile stinse
digitalWrite(luminafata, LOW);
digitalWrite(luminaspate, LOW);
/////////////////////////////////////////////////

}

void loop() {
det = check(); //call check() subrotine to get the serial code

//serial code analysis
switch (det){
case 'F': // F, move forward   //<-- Litera F trebuie transmisa si la fel cu celelalte, pe rand
motorRight.setSpeed(vel);
motorLeft.setSpeed(vel);
motorRight.run(FORWARD);
motorLeft.run(FORWARD);
//det = check();
break;

case 'B': // B, move back
motorRight.setSpeed(vel);
motorLeft.setSpeed(vel);
motorRight.run(BACKWARD);
motorLeft.run(BACKWARD);
//det = check();
break;

case 'L':// L, move wheels left
motorRight.setSpeed(vel);
motorLeft.setSpeed(vel/4);
motorRight.run(FORWARD);
motorLeft.run(FORWARD);
//det = check();
break;

case 'R': // R, move wheels right
motorRight.setSpeed(vel/4);
motorLeft.setSpeed(vel);
motorRight.run(FORWARD);
motorLeft.run(FORWARD);
//det = check();
break;

case 'I': // I, turn right forward
motorRight.setSpeed(vel/2);
motorLeft.setSpeed(vel);
motorRight.run(FORWARD);
motorLeft.run(FORWARD);
//det = check();
break;

case 'J': // J, turn right back
motorRight.setSpeed(vel/2);
motorLeft.setSpeed(vel);
motorRight.run(BACKWARD);
motorLeft.run(BACKWARD);
//det = check();
break;

case 'G': // G, turn left forward
motorRight.setSpeed(vel);
motorLeft.setSpeed(vel/2);
motorRight.run(FORWARD);
motorLeft.run(FORWARD);
//det = check();
break;

case 'H': // H, turn left back
motorRight.setSpeed(vel);
motorLeft.setSpeed(vel/2);
motorRight.run(BACKWARD);
motorLeft.run(BACKWARD);
//det = check();
break;

case 'S': // S, stop
motorRight.setSpeed(vel_stop);
motorLeft.setSpeed(vel_stop);
motorRight.run(RELEASE);
motorLeft.run(RELEASE);
//det = check();
break;
///////////////////////////////////////////////
case 'U': // U, Lumini spate pornite
    digitalWrite(luminaspate, HIGH);
    break;
    
case 'u': //u, Lumini spate oprite
    digitalWrite(luminaspate, LOW);
    break;
    
case 'W': //W, Lumini fata pornite
    digitalWrite(luminafata, HIGH);
    break;
case 'w': //w, Lumini spate oprite
      
    digitalWrite(luminafata, LOW);
    break;
//////////////////////////////////////////////////
}
}

int check(){
if (Serial.available() > 0){// if there is valid data in the serial port
dataIn = Serial.read();// stores data into a variable

//check the code
if (dataIn == 'F'){//Inainte
determinant = 'F';
}
else if (dataIn == 'B'){//Inapoi
determinant = 'B';
}
else if (dataIn == 'L'){//Stanga
determinant = 'L';
}
else if (dataIn == 'R'){//Dreapta
determinant = 'R';
}
else if (dataIn == 'I'){//Inainte si la dreapta
determinant = 'I';
}
else if (dataIn == 'J'){//Inapoi si la dreapta
determinant = 'J';
}
else if (dataIn == 'G'){//Inainte si la stanga
determinant = 'G';
}
else if (dataIn == 'H'){//Inapoi si la stNGA
determinant = 'H';
}
else if (dataIn == 'S'){//Stop
determinant = 'S';
}
else if (dataIn == '0'){//VITEZA = 0
vel = 0;
}
else if (dataIn == '1'){//VITEZA = 25
vel = 25;
}
else if (dataIn == '2'){//VITEZA = 50
vel = 50;
}
else if (dataIn == '3'){//VITEZA = 75
vel = 75;
}
else if (dataIn == '4'){//VITEZA = 100
vel = 100;
}
else if (dataIn == '5'){//VITEZA = 125
vel = 125;
}
else if (dataIn == '6'){//VITEZA = 150
vel = 150;
}
else if (dataIn == '7'){//VITEZA = 175
vel = 175;
}
else if (dataIn == '8'){//VITEZA = 200
vel = 200;
}
else if (dataIn == '9'){//VITEZA = 225
vel = 225;
}
else if (dataIn == 'q'){//VITEZA = 255
vel = 255;
}
else if (dataIn == 'U'){//Lumini spate pornite
determinant = 'U';
}
else if (dataIn == 'u'){//Lumini spate stinse
determinant = 'u';
}
else if (dataIn == 'W'){//Lumini fata pornite
determinant = 'W';
}
else if (dataIn == 'w'){//Lumini fata oprite
determinant = 'w';
}
else if (dataIn == 'V'){//Claxon pornit
determinant = 'V';
}
else if (dataIn == 'v'){//Claxon oprit
determinant = 'v';
}
else if (dataIn == 'X'){//Extra On
determinant = 'X';
}
else if (dataIn == 'x'){//Extra Off
determinant = 'x';
}
}
return determinant;
}

Am adaugat cod pentru lumini fata si spate, ramane de pus claxonul.Pinii pentru lumini sunt 2 si 13.


Edited by Elison, 12 January 2018 - 12:38 PM.


#99 OFFLINE   pauly

pauly

    Membru

  • Membru activ
  • PipPip
  • 191 posts
  • Locatie:Ploiesti

Posted 12 January 2018 - 12:46 PM

OK. Mulțumesc mult. Am sa incerc sa adaug cele menționate de d-voastră.

#100 OFFLINE   Elison

Elison

    Membru

  • Membru activ
  • PipPip
  • 282 posts
  • Locatie::

Posted 12 January 2018 - 12:56 PM

Daca folositi pentru lumini leduri, puteti sa le legati inseriate cu o rezistenta direct pe pini, daca folosti becuri, trebuie sa legati iesirile pe un tranzistor cu un rezistor in baza.



#101 OFFLINE   pauly

pauly

    Membru

  • Membru activ
  • PipPip
  • 191 posts
  • Locatie:Ploiesti

Posted 12 January 2018 - 01:01 PM

OK. O schema ceva pentru leduri? Doua leduri albe pe fata si doua leduri rosii pe spate. Stiu ca tensiunile sunt diferite pentru cele albe fata de cele rosii. Va multumesc mult si din tot sufletul.



#102 OFFLINE   Elison

Elison

    Membru

  • Membru activ
  • PipPip
  • 282 posts
  • Locatie::

Posted 12 January 2018 - 02:10 PM

Un rezistor de 56 ohmi este suficient pentru a comanda doua leduri inseriate (stanga, dreapta).

Valoarea rezistorului se alege in asa fel incat curentul absorbit de cele doua leduri sa nu depaseasca 40 mA.

ExampleCircuit_sch.png


Edited by Elison, 12 January 2018 - 02:20 PM.


Cu_reclama

Cu_reclama
  • Membri
    ********

#103 OFFLINE   pauly

pauly

    Membru

  • Membru activ
  • PipPip
  • 191 posts
  • Locatie:Ploiesti

Posted 12 January 2018 - 02:22 PM

OK. Multumesc mult pentru amabilitate, intelegere si rabdare.  Inca o data ,,MULTUMESC"!  Multa, multa sanatate.






1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users