Advertisement
Kevin_Zhang

Untitled

Jun 9th, 2020
399
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.06 KB | None | 0 0
  1. #include <SoftwareSerial.h>  
  2. SoftwareSerial BT(9,8); // RX | TX
  3. const int val = 0, Monitor_val = 38400, Bt_speed = 9600;
  4. const int L[2] = {3, 5}, R[2] = {6, 9};
  5. inline void swap(auto &a, auto &b) {
  6.     auto c = b;
  7.     b = a;
  8.     a = c;
  9. }
  10. void setup() {
  11.     Serial.begin(Monitor_val);
  12.     Serial.println("Arduino Nano Ready");
  13.     BT.begin(Bt_speed);
  14.     for (int i = 0;i < 2;++i)
  15.         pinMode(L[i], OUTPUT), pinMode(R[i], OUTPUT);
  16. }
  17. int getint() {
  18.     static int p;
  19.     int x = 0;
  20.     while (!BT.available() || isdigit(p = BT.read()))
  21.         x = x * 10 + p;
  22.     return x;
  23. }
  24. String getstring(char sep = '\n') {
  25.     static char p;
  26.     String x;
  27.     while (!BT.available() || (p = BT.read()) != sep)
  28.         x += p;
  29.     return x;
  30. }
  31. void loop() {
  32.     static int t;
  33. //  delay(1);
  34.     Serial.print("Test Now Ok ");
  35.     Serial.print(++t);
  36.     Serial.print('\n');
  37.     drive();
  38. }
  39. void drive() {
  40.     int a = getint(), b = getint();
  41.     update(L, a), update(R, b);
  42. }
  43. void update(int *pin, int val) {
  44.     val -= 128;
  45.     int a = pin[0], b = pin[1];
  46.     if (val < 0) swap(a, b), val *= -1;
  47.     analogWrite(a, 0), analogWrite(b, val);
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement