Advertisement
Maderdash

testing

Nov 27th, 2021
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.01 KB | None | 0 0
  1. #include <LiquidCrystal.h>
  2. LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2); // LCD on pins 12, 11, 10, 5, 4, 3, 2.
  3. int StartPin                = 9;      // switch input
  4. int motor1Pin               = 7;      // H-bridge leg 1 (pin 2, 1A)
  5. int motor2Pin               = 6;      // H-bridge leg 2 (pin 7, 2A)
  6. int enablePin               = 8;      // H-bridge enable pin
  7. int DirPin                  = 13;     // Motor direction select
  8. int DirSwCounter            = 0;
  9. int LastDirState            = 0;
  10. bool Dir                    = true;
  11. int cansCrushed;                       // Initial number of cans crushed set to 0
  12. void setup()
  13. {
  14.   Serial.begin(9600);
  15.   // INITIALIZE
  16.   pinMode(StartPin, INPUT);
  17.   pinMode(DirPin, INPUT);
  18.   pinMode(motor1Pin, OUTPUT);
  19.   pinMode(motor2Pin, OUTPUT);
  20.   pinMode(enablePin, OUTPUT);
  21.   digitalWrite(enablePin, LOW);
  22.   lcd.begin(16, 2);
  23.   lcd.print("Can Crusher MKII");
  24.   delay(3000);
  25.   lcd.clear();
  26.   lcd.setCursor(0, 0);
  27.   lcd.print("Crushed:");
  28.   lcd.setCursor(10, 0);
  29.   lcd.print((int)cansCrushed);
  30.   lcd.setCursor(0, 1);
  31.   lcd.print("Weight:");
  32.   lcd.setCursor(9, 1);
  33.   lcd.print((int)cansCrushed * .034375);
  34.   pinMode(StartPin, INPUT);
  35.   pinMode(DirPin, INPUT);
  36.   pinMode(motor1Pin, OUTPUT);
  37.   pinMode(motor2Pin, OUTPUT);
  38.   pinMode(enablePin, OUTPUT);
  39.   digitalWrite(enablePin, LOW);
  40.   cansCrushed = 0;
  41. }
  42.  
  43. void loop() {
  44.   // READ PINS
  45.   int DirState = digitalRead(DirPin);
  46.   if (LastDirState == LOW && DirState == HIGH) {
  47.     DirSwCounter++;
  48.     Serial.println("dirPin triggered");
  49.   }
  50.   LastDirState = DirState;
  51.   // PROCESS
  52.   if (DirSwCounter % 2 == 0) {
  53.     Dir = false;
  54.     cansCrushed++;
  55.   } else {
  56.     Dir = true;
  57.   }
  58.   if (digitalRead(StartPin) == HIGH && Dir == false) {
  59.     digitalWrite(motor1Pin, HIGH);
  60.     digitalWrite(motor2Pin, LOW);
  61.   }
  62.   else if (digitalRead(StartPin) == HIGH && Dir == true)
  63.   {
  64.     digitalWrite(motor1Pin, LOW);
  65.     digitalWrite(motor2Pin, HIGH);
  66.   } else {
  67.     digitalWrite(motor1Pin, LOW);
  68.     digitalWrite(motor2Pin, LOW);
  69.   }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement