Advertisement
pleasedontcode

"Wireless Servo Control" rev_01

Apr 11th, 2024
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /********* Pleasedontcode.com **********
  2.  
  3.     Pleasedontcode thanks you for automatic code generation! Enjoy your code!
  4.  
  5.     - Terms and Conditions:
  6.     You have a non-exclusive, revocable, worldwide, royalty-free license
  7.     for personal and commercial use. Attribution is optional; modifications
  8.     are allowed, but you're responsible for code maintenance. We're not
  9.     liable for any loss or damage. For full terms,
  10.     please visit pleasedontcode.com/termsandconditions.
  11.  
  12.     - Project: "Wireless Servo Control"
  13.     - Source Code compiled for: ESP32 DevKit V1
  14.     - Source Code created on: 2024-04-11 21:26:00
  15.  
  16. ********* Pleasedontcode.com **********/
  17.  
  18. /****** SYSTEM REQUIREMENTS *****/
  19. /****** SYSTEM REQUIREMENT 1 *****/
  20.     /* This code will create a code for esp32 in which it */
  21.     /* will be controlled wirelessly through a web */
  22.     /* server.where the webpage should have buttons to */
  23.     /* switch from auto and manual.When auto state is on */
  24.     /* the ldr will send the reading to esp32 in which if */
  25.     /* the ld */
  26. /****** END SYSTEM REQUIREMENTS *****/
  27.  
  28. /****** DEFINITION OF LIBRARIES *****/
  29. #include <Deneyap_Servo.h> // https://github.com/deneyapkart/deneyap-servo-arduino-library
  30.  
  31. /****** SYSTEM REQUIREMENTS *****/
  32. /****** SYSTEM REQUIREMENT 1 *****/
  33. /* This code will create a code for ESP32 in which it */
  34. /* will be controlled wirelessly through a web */
  35. /* server. The webpage should have buttons to */
  36. /* switch from auto and manual. When the auto state is on, */
  37. /* the LDR will send the reading to ESP32, and if */
  38. /* the LDR reading exceeds a certain threshold, it will */
  39. /* rotate a servo motor to a specific angle. */
  40.  
  41. /****** FUNCTION PROTOTYPES *****/
  42. void setup(void);
  43. void loop(void);
  44. void updateOutputs(void);
  45. void handleAutoMode(void);
  46. void handleManualMode(void);
  47.  
  48. /***** DEFINITION OF PWM OUTPUT PINS *****/
  49. const uint8_t servo_Servomotor_PWMSignal_PIN_D4 = 4;
  50.  
  51. /***** DEFINITION OF OUTPUT RAW VARIABLES *****/
  52. uint8_t servo_Servomotor_PWMSignal_PIN_D4_rawData = 0;
  53.  
  54. /***** DEFINITION OF OUTPUT PHYSICAL VARIABLES *****/
  55. float servo_Servomotor_PWMSignal_PIN_D4_phyData = 0.0;
  56.  
  57. /***** DEFINITION OF MODE VARIABLES *****/
  58. bool autoMode = false;
  59. int LDRThreshold = 500; // Adjust the threshold value based on LDR sensitivity
  60.  
  61. /****** DEFINITION OF LIBRARY CLASS INSTANCES*****/
  62. Servo myservo; // Create Servo object
  63.  
  64. void setup(void) {
  65.   // put your setup code here, to run once:
  66.   myservo.attach(servo_Servomotor_PWMSignal_PIN_D4); // Attach servo motor to pin D4
  67.  
  68.   // Initialize web server and setup routes
  69.   // ...
  70.  
  71.   // Start WiFi connection
  72.   // ...
  73. }
  74.  
  75. void loop(void) {
  76.   // put your main code here, to run repeatedly:
  77.   handleAutoMode(); // Handle auto mode logic
  78.   handleManualMode(); // Handle manual mode logic
  79.   updateOutputs(); // Refresh output data
  80. }
  81.  
  82. void updateOutputs(void) {
  83.   if (!autoMode) {
  84.     myservo.write(servo_Servomotor_PWMSignal_PIN_D4_rawData); // Set angle of the servo motor in manual mode
  85.   }
  86. }
  87.  
  88. void handleAutoMode(void) {
  89.   if (autoMode) {
  90.     // Read LDR value
  91.     int LDRValue = analogRead(A0); // Assuming LDR is connected to pin A0
  92.  
  93.     // Check if LDR value exceeds threshold
  94.     if (LDRValue > LDRThreshold) {
  95.       // Calculate servo angle based on LDR value
  96.       int servoAngle = map(LDRValue, LDRThreshold, 1023, 0, 180);
  97.  
  98.       // Set servo angle
  99.       myservo.write(servoAngle);
  100.     }
  101.   }
  102. }
  103.  
  104. void handleManualMode(void) {
  105.   // Check for manual mode button press
  106.   // If manual mode button is pressed, set autoMode to false
  107.   // If manual mode button is released, set autoMode to true
  108.   // ...
  109. }
  110.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement