Advertisement
ZulRocky

Sistem Digital Line Follower (Processing) With Bluetooth

May 3rd, 2020
681
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <LiquidCrystal_SR_LCD3.h>
  2. const int PIN_LCD_STROBE  = 2;
  3. const int PIN_LCD_DATA  = 3;
  4. const int PIN_LCD_CLOCK = 4;
  5. LiquidCrystal_SR_LCD3 lcd(PIN_LCD_DATA, PIN_LCD_CLOCK, PIN_LCD_STROBE);
  6.  
  7. /* MOTOR */
  8. int mt1=5, mt2=6, mt3=12, mt4=8;
  9. #define enA NULL
  10. #define in1 8
  11. #define in2 6
  12. #define enB NULL
  13. #define in3 12
  14. #define in4 5
  15.  
  16. int motorSpeedA = 0;
  17. int motorSpeedB = 0;
  18. /* BUTTON SW3 SW4 SW5 SW6*/
  19. int sw3=8, sw4=13, sw5=11, sw6=12;
  20. /* END BUTTON */
  21.  
  22. void setup() {
  23.   Serial.begin(9600);
  24.  
  25.   lcd.clear();
  26.  
  27.   pinMode(7, OUTPUT);
  28.   /* BUTTON */
  29.   //pinMode(sw3, INPUT);
  30.   pinMode(sw4, INPUT);
  31.   pinMode(sw5, INPUT);
  32.   //pinMode(sw6, INPUT);
  33.   /* END BUTTON */
  34.  
  35.   /* MOTOR */
  36.   pinMode(enA, OUTPUT);
  37.   pinMode(enB, OUTPUT);
  38.   pinMode(in1, OUTPUT);
  39.   pinMode(in2, OUTPUT);
  40.   pinMode(in3, OUTPUT);
  41.   pinMode(in4, OUTPUT);
  42.   /* END MOTOR */
  43.  
  44.   while (!Serial) {
  45.     ; // wait for serial port to connect. Needed for native USB port only
  46.   }
  47.   lcd.begin(16, 2);
  48.   lcd.home();
  49.   lcd.setCursor(4,0);
  50.   lcd.print("*Welcome*"); delay(1000);
  51.   lcd.clear();
  52.   lcd.setCursor(1,0);
  53.   lcd.print("Line  Follower");
  54.   lcd.setCursor(6,1);
  55.   lcd.print("v1.0");
  56.   delay(3000);
  57.   lcd.clear();
  58. }
  59.  
  60. int kecepatan = 100;
  61.  
  62. void loop() {
  63.   if(Serial.available()){
  64.     digitalWrite(7, HIGH);
  65.     char controllRobo = Serial.read();
  66.     lcd.setCursor(0,0);
  67.     lcd.print(controllRobo);
  68.     if(controllRobo == '8'){
  69.       fmotorpwm(kecepatan, kecepatan);
  70.       Serial.println("Forward");
  71.     }else if(controllRobo == '5'){
  72.       smotor();
  73.       Serial.println("STOP!");
  74.       digitalWrite(7, LOW);
  75.     }else if(controllRobo == '2'){
  76.       bmotor();
  77.       Serial.println("Back");
  78.       digitalWrite(7, LOW);
  79.     }else if(controllRobo == '4'){
  80.       //Speed-
  81.       if(kecepatan > 5 && kecepatan <= 255){
  82.         kecepatan -= 5;
  83.       }
  84.       lcd.clear();
  85.       lcd.setCursor(0,1);
  86.       lcd.print(kecepatan);
  87.       Serial.println(kecepatan);
  88.     }else if(controllRobo == '6'){
  89.       //Speed+
  90.       if(kecepatan >= 0 && kecepatan < 250){
  91.         kecepatan += 5;
  92.       }
  93.       lcd.clear();
  94.       lcd.setCursor(0,1);
  95.       lcd.print(kecepatan);
  96.       Serial.println(kecepatan);
  97.     }
  98.   }
  99. }
  100.  
  101.  
  102. void fmotor(){
  103.   analogWrite(in2, 255);
  104.   analogWrite(in4, 255);
  105. }
  106.  
  107. void bmotor(){
  108.   digitalWrite(in1, HIGH);
  109.   digitalWrite(in3, HIGH);
  110. }
  111.  
  112. void smotor(){
  113.   digitalWrite(in1, LOW);
  114.   digitalWrite(in3, LOW);
  115.   analogWrite(in2, 0);
  116.   analogWrite(in4, 0);
  117. }
  118.  
  119. void fmotorpwm(int motora, int motorb){
  120.   analogWrite(in2, motora);
  121.   analogWrite(in4, motorb);
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement