Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef CarLib_h
- #define CarLib_h
- #include "Arduino.h"
- void initialize();
- int getDistance(int pin);
- void updateMotors(int Mleft, int Mright);
- void updateSpeed(int left, int right);
- void Forward(int del);
- void Backward(int del);
- void TurnRight(int del);
- void TurnLeft(int del);
- void Stop(int del);
- #endif
- -
- #include "Arduino.h"
- #include "CarLib.h"
- int MSleft = 0;
- int MSright = 0;
- void updateSpeed(int left, int right)
- {
- MSleft = abs(left);
- MSright = abs(right);
- updateMotors(left, right);
- }
- void initialize()
- {
- Serial.begin(9600);
- pinMode(A0, OUTPUT);
- pinMode(A1, INPUT);
- pinMode(A2, INPUT);
- pinMode(A3, INPUT);
- pinMode(A6, INPUT);
- pinMode(A7, INPUT);
- pinMode(4, OUTPUT);
- pinMode(5, OUTPUT);
- pinMode(6, OUTPUT);
- pinMode(7, OUTPUT);
- pinMode(8, OUTPUT);
- pinMode(9, OUTPUT);
- }
- int getDistance(int pin)
- {
- digitalWrite(A0, LOW);
- delayMicroseconds(2);
- digitalWrite(A0, HIGH);
- delayMicroseconds(10);
- digitalWrite(A0, LOW);
- int duration;
- switch(pin)
- {
- case 1: duration = pulseIn(A1, HIGH); break;
- case 2: duration = pulseIn(A2, HIGH); break;
- case 3: duration = pulseIn(A3, HIGH); break;
- case 4: duration = pulseIn(A6, HIGH); break;
- case 5: duration = pulseIn(A7, HIGH); break;
- }
- digitalWrite(A0, LOW);
- return (duration / 58.2);
- }
- void updateMotors(int Mleft, int Mright)
- {
- if (Mleft > 0)
- {
- analogWrite(9, abs(Mleft));
- digitalWrite(8, LOW);
- digitalWrite(7, HIGH);
- }
- else if (Mleft < 0)
- {
- analogWrite(9, abs(Mleft));
- digitalWrite(8, HIGH);
- digitalWrite(7, LOW);
- }
- else
- {
- analogWrite(9, 0);
- digitalWrite(8, LOW);
- digitalWrite(7, LOW);
- }
- if (Mright > 0)
- {
- analogWrite(6, abs(Mright));
- digitalWrite(5, LOW);
- digitalWrite(4, HIGH);
- }
- else if (Mright < 0)
- {
- analogWrite(6, abs(Mright));
- digitalWrite(5, HIGH);
- digitalWrite(4, LOW);
- }
- else
- {
- analogWrite(6, 0);
- digitalWrite(5, LOW);
- digitalWrite(4, LOW);
- }
- }
- void TurnRight(int del)
- {
- updateMotors(MSleft, -MSright);
- delay(del);
- }
- void TurnLeft(int del)
- {
- updateMotors(-MSleft, MSright);
- delay(del);
- }
- void Forward(int del)
- {
- updateMotors(MSleft, MSright);
- delay(del);
- }
- void Backward(int del)
- {
- updateMotors(-MSleft, -MSright);
- delay(del);
- }
- void Stop(int del)
- {
- updateMotors(0, 0);
- delay(del);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement