Produs original GroundStudio
Produsele GroundStudio sunt proiectate si asamblate in Romania, in regim Open Hardware, folosind componente de calitate superioara. |
Descarcari:
Descrierea produsului:
Modul bazat pe puntea H dubla L9110s cu ajutorul careia se poate controla viteza si sensul a doua motoare.
Specificatii tehnice:
Tensiune de alimentare: 2.5 - 12 V
Curent pe fiecare canal: 800 mA
Dimensiuni: 29x23 mm
ATENTIE - Produsul are nevoie de racire adecvata in functie de nivelul intensitatii curentului utilizat. In cazul in care racirea nu este asigurata corespunzator, acestea se vor defecta si va duce automat la pierderea garantiei.
Pentru racire este nevoie sa atasati un radiator (nu este inclus) si sa asigurati un flux de aer corespunzator: carcasa sa fie aerisita sau sa folositi un ventilator (nu este inclus)
Exemplu de conectare:
Pentru realizarea acestui exemplu de conectare aveti nevoie de urmatoarele:
1x Placa de dezvoltare UNO || Referinta: TXVMOK_DB-UNO-R3
1x Sursa alimentare 9V 1A || Referinta LEVUOQ_PSU-9V-1A
1x Motoras curent continuu 3-6V || Referinta UCJSGR_motor_small_2
diferite fire necesare pentru realizarea legaturilor electrice
- Conectati motorasul DC la unul din conectorii cu surub ai modulului.
- Faceti urmatoarele legaturi intre modulul L9110 si placa UNO:
L9110 __________ UNO
GND __________ GND
VCC __________ 5V
B-IA __________ D10
B-IB __________ D11
- Alimentati placa de dezvoltare UNO de la sursa 9V 1A si conectati-o la un PC.
- Incarcati codul de mai jos:
Exemplu cod:
// wired connections
#define HG7881_B_IA 10 // D10 --> Motor B Input A --> MOTOR B +
#define HG7881_B_IB 11 // D11 --> Motor B Input B --> MOTOR B -
// functional connections
#define MOTOR_B_PWM HG7881_B_IA // Motor B PWM Speed
#define MOTOR_B_DIR HG7881_B_IB // Motor B Direction
// the actual values for "fast" and "slow" depend on the motor
#define PWM_SLOW 50 // arbitrary slow speed PWM duty cycle
#define PWM_FAST 200 // arbitrary fast speed PWM duty cycle
#define DIR_DELAY 1000 // brief delay for abrupt motor changes
void setup()
{
Serial.begin( 9600 );
pinMode( MOTOR_B_DIR, OUTPUT );
pinMode( MOTOR_B_PWM, OUTPUT );
digitalWrite( MOTOR_B_DIR, LOW );
digitalWrite( MOTOR_B_PWM, LOW );
}
void loop()
{
boolean isValidInput;
// draw a menu on the serial port
Serial.println( "-----------------------------" );
Serial.println( "MENU:" );
Serial.println( "1) Fast forward" );
Serial.println( "2) Forward" );
Serial.println( "3) Soft stop (coast)" );
Serial.println( "4) Reverse" );
Serial.println( "5) Fast reverse" );
Serial.println( "6) Hard stop (brake)" );
Serial.println( "-----------------------------" );
do
{
byte c;
// get the next character from the serial port
Serial.print( "?" );
while( !Serial.available() )
; // LOOP...
c = Serial.read();
// execute the menu option based on the character recieved
switch( c )
{
case '1': // 1) Fast forward
Serial.println( "Fast forward..." );
// always stop motors briefly before abrupt changes
digitalWrite( MOTOR_B_DIR, LOW );
digitalWrite( MOTOR_B_PWM, LOW );
delay( DIR_DELAY );
// set the motor speed and direction
digitalWrite( MOTOR_B_DIR, HIGH ); // direction = forward
analogWrite( MOTOR_B_PWM, 255-PWM_FAST ); // PWM speed = fast
isValidInput = true;
break;
case '2': // 2) Forward
Serial.println( "Forward..." );
// always stop motors briefly before abrupt changes
digitalWrite( MOTOR_B_DIR, LOW );
digitalWrite( MOTOR_B_PWM, LOW );
delay( DIR_DELAY );
// set the motor speed and direction
digitalWrite( MOTOR_B_DIR, HIGH ); // direction = forward
analogWrite( MOTOR_B_PWM, 255-PWM_SLOW ); // PWM speed = slow
isValidInput = true;
break;
case '3': // 3) Soft stop (preferred)
Serial.println( "Soft stop (coast)..." );
digitalWrite( MOTOR_B_DIR, LOW );
digitalWrite( MOTOR_B_PWM, LOW );
isValidInput = true;
break;
case '4': // 4) Reverse
Serial.println( "Fast forward..." );
// always stop motors briefly before abrupt changes
digitalWrite( MOTOR_B_DIR, LOW );
digitalWrite( MOTOR_B_PWM, LOW );
delay( DIR_DELAY );
// set the motor speed and direction
digitalWrite( MOTOR_B_DIR, LOW ); // direction = reverse
analogWrite( MOTOR_B_PWM, PWM_SLOW ); // PWM speed = slow
isValidInput = true;
break;
case '5': // 5) Fast reverse
Serial.println( "Fast forward..." );
// always stop motors briefly before abrupt changes
digitalWrite( MOTOR_B_DIR, LOW );
digitalWrite( MOTOR_B_PWM, LOW );
delay( DIR_DELAY );
// set the motor speed and direction
digitalWrite( MOTOR_B_DIR, LOW ); // direction = reverse
analogWrite( MOTOR_B_PWM, PWM_FAST ); // PWM speed = fast
isValidInput = true;
break;
case '6': // 6) Hard stop (use with caution)
Serial.println( "Hard stop (brake)..." );
digitalWrite( MOTOR_B_DIR, HIGH );
digitalWrite( MOTOR_B_PWM, HIGH );
isValidInput = true;
break;
default:
// wrong character! display the menu again!
isValidInput = false;
break;
}
} while( isValidInput == true );
// repeat the main loop and redraw the menu...
}
Dupa incarcarea codului deschideti "Serial Monitor" setati-l la 9600 baud si controlati motorul introducand comanda dorita urmata de tasta enter:
CONTINUTUL COLETULUI:
1x buc. modul L9110s GroundStudio
Certificari: