Advertisement
pseud0_

Untitled

Sep 9th, 2022
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.31 KB | None | 0 0
  1. #include <Arduino.h>//port 8 rechts vorne
  2. //SLAVE
  3.  
  4. //Libraries-----------------------------------------------------------------------------------------------------------------
  5.  
  6. #include <SoftwareSerial.h>
  7. #include "U8glib.h" //Display
  8.  
  9. #include <Servo.h>
  10.  
  11. //Initialization-----------------------------------------------------------------------------------------------------------------
  12.  
  13. SoftwareSerial mySerial(3, 2);
  14. U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_DEV_0);
  15.  
  16. int motor1 = 5;
  17. int motor2 = 6;
  18. int motor3 = 9;
  19. int motor4 = 10;
  20.  
  21. Servo myservo;
  22.  
  23. //Variables-----------------------------------------------------------------------------------------------------------------
  24.  
  25. //int Button =8;
  26. //int led =10;
  27.  
  28. String OutputString ="";
  29. String str ="";
  30. String data ="";
  31. String value1String="";
  32. String value2String="";
  33. String value3String="";
  34. String value4String="";
  35. int value1=100;
  36. int value2=100;
  37. int value3=100;
  38. int value4=100;
  39. int kg1 =0;
  40. int kg2 =0;
  41. int kg3 =0;
  42. int kg4 =0;
  43.  
  44. //char *data1 = " ";
  45. String data1 ="";
  46. const byte address[6] = "00001";
  47.  
  48. char text[32] = "";
  49.  
  50.  
  51. //-----------------------------------------------------
  52. String input_line = "";
  53. bool read_input_line() {
  54.   while(mySerial.available()) {
  55.     char data = (char) mySerial.read();
  56.     // was \n? don't add to string, indicate full input value
  57.     if (data == '\n') {
  58.       input_line.replace("\r", "");
  59.       input_line.replace("\n", "");
  60.       return input_line.length() != 0;
  61.     }
  62.     input_line += data;
  63.   }
  64.   return false;
  65. }
  66. //Setup-----------------------------------------------------------------------------------------------------------------
  67.  
  68. void setup(){
  69.   Serial.begin(9600);
  70.   mySerial.begin(38400);
  71.  
  72.   pinMode(motor1, OUTPUT);
  73.   pinMode(motor2, OUTPUT);
  74.   pinMode(motor3, OUTPUT);
  75.   pinMode(motor4, OUTPUT);
  76.  
  77.   u8g.setFont(u8g_font_8x13);
  78.  
  79.   //myservo.attach(11);
  80.  
  81.  
  82.  
  83.   /*
  84.   pinMode(Button, INPUT_PULLUP);
  85.   pinMode(led,OUTPUT);
  86.   */
  87. }
  88.  
  89. //Main-----------------------------------------------------------------------------------------------------------------
  90.  
  91.  
  92.  
  93. void loop() {
  94.   if(read_input_line()) {
  95.     // we have a new valid string!!
  96.     //Serial.println("Received: " + input_line);
  97.     // process it...
  98.  
  99.     VariableCreator(input_line);
  100.     Serial.println(value1);
  101.     myservo.attach(11);
  102.     Motor(value1,value2,value3,value4);
  103.     delay(100); // wait for servo to reach its position
  104.     myservo.detach();
  105.    
  106.  
  107.     // reeset
  108.     input_line = "";
  109.   }
  110. }
  111.  
  112. //Subs-----------------------------------------------------------------------------------------------------------------
  113.  
  114. /*
  115. void ButtonLED(){
  116.  
  117.   if (mySerial.read() == 'a'){
  118.     digitalWrite(led, HIGH);
  119.   }
  120.   else{
  121.     digitalWrite(led, LOW);
  122.   }
  123.  
  124.   int button = digitalRead(Button);
  125.   if(button == LOW){
  126.     mySerial.println("b");
  127.   }
  128. }
  129. */
  130.  
  131. //-----------------------------------------------------------------------------------------------------------------
  132.  
  133. int VariableCreator(String input_line){
  134.   //char Buf[50];
  135.     //data.toCharArray(Buf, 50);
  136.   sscanf(input_line.c_str(),"%d %d %d %d", &value1, &value2, &value3, &value4);
  137.   return(value1, value2, value3, value4);
  138. }
  139.  
  140. void Motor(int value1,int value2,int value3, int value4){
  141.     analogWrite(motor1, value1);                  // sets the servo angle according to the scaled value
  142.     analogWrite(motor2, value2);
  143.     analogWrite(motor3, value3);
  144.     analogWrite(motor4, value4);
  145.     myservo.write(value1);
  146. }
  147.  
  148. int VariableManipulation(int value1,int value2,int value3,int value4){
  149.   kg1 = map(value1, 0, 255, 0, 100);
  150.   kg2 = map(value2, 0, 255, 0, 100);
  151.   kg3 = map(value3, 0, 255, 0, 100);
  152.   kg4 = map(value4, 0, 255, 0, 100);
  153.   return(kg1, kg2, kg3, kg4);
  154. }
  155.  
  156. void Display(int kg1, int kg2, int kg3, int kg4){
  157.   u8g.firstPage();
  158.     do {
  159.       //Write text. (x, y, text)
  160.       String Sensor1 = "S1: "+String(kg1)+"% |";
  161.       String Sensor2 = "S2: "+String(kg2)+"%";
  162.       String Sensor3 = "S3: "+String(kg3)+"% |";
  163.       String Sensor4 = "S4: "+String(kg4)+"%";
  164.       //String text1= String(kg1);
  165.       u8g.drawStr(5, 15, Sensor1.c_str());
  166.       u8g.drawStr(70, 15, Sensor2.c_str());
  167.       u8g.drawStr(5, 30, Sensor3.c_str());
  168.       u8g.drawStr(70, 30, Sensor4.c_str());
  169.     }
  170.     while (u8g.nextPage());
  171.     //delay(5);
  172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement