Advertisement
iyera20

Water Level and Stepper

Jun 27th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. //www.elegoo.com
  2. //2016.12.9
  3.  
  4. const int pinWater = 0;
  5. int historyWaterLevel = 0;
  6. char printBuffer[128];
  7. int minimum= 0;
  8. int maximum= 400;
  9. int pourOnceTime = 1000;
  10. int settleDelay =1000;
  11. const int pinLEDgreen=2;
  12. const int pinLEDred=3;
  13.  
  14. #include <Stepper.h>
  15.  
  16. const int stepsPerRevolution = 500; // change this to fit the number of steps per revolution
  17.  
  18. // initialize the stepper library on pins 8 through 11:
  19. Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);
  20.  
  21. void setup()
  22. {
  23. Serial.begin(9600);
  24. // set the speed at 20 rpm:
  25. myStepper.setSpeed(20);
  26. pinMode (pinLEDgreen, OUTPUT);
  27. pinMode (pinLEDred, OUTPUT);
  28.  
  29. }
  30.  
  31. void loop()
  32. {
  33. int waterLevel = analogRead(pinWater); // get adc waterLevel
  34.  
  35. // if(((historyWaterLevel>= waterLevel) && ((historyWaterLevel - waterLevel) > 10)) || ((historyWaterLevel<waterLevel) && ((waterLevel - historyWaterLevel) > 10)))
  36. // {
  37. // sprintf(printBuffer, "ADC%d level is %d\n", pinWater, waterLevel);
  38. // Serial.println(printBuffer);
  39. // historyWaterLevel = waterLevel;
  40. // }
  41.  
  42. Serial.println (waterLevel);
  43.  
  44. while (waterLevel>= minimum && waterLevel<=maximum)
  45. {
  46.  
  47. pourOnce(.75);
  48. waterLevel = analogRead(pinWater);
  49. Serial.println (waterLevel);
  50. digitalWrite (pinLEDred, HIGH);
  51. delay(100);
  52. digitalWrite (pinLEDgreen, LOW);
  53. }
  54. }
  55.  
  56. void pourOnce(float angle)
  57. {
  58. int steps=angle*500;
  59. myStepper.step(steps);
  60. delay(pourOnceTime);
  61. myStepper.step(-steps);
  62. delay(settleDelay);
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement