Advertisement
Guest User

Magnetic Levitation

a guest
Dec 12th, 2019
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.57 KB | None | 0 0
  1. //=========================================================|
  2. // Ekobots Innovation Ltda - www.ekobots.com.br |
  3. // Juan Sirgado y Antico - www.jsya.com.br |
  4. //---------------------------------------------------------|
  5. // Program Magnetic Levitator - 2016/02/06 |
  6. // All rights reserved 2016 |
  7. //=========================================================|
  8. int anaPin = 1; // Arduino Analogic Pin 1;
  9. int digPin = 5; // Arduino Digital Pin 5;
  10. int subPin = 7; // Arduino Digital Pin 7;
  11. int addPin = 8; // Arduino Digital Pin 8;
  12. //
  13. int anaVal = 0; // Analogic Read(Hall Sensor) Value;
  14. boolean digVal = 0; // Digital Write(Electromagnet) Value;
  15. //
  16. int levVal = 228; // Levitation Poit Value;
  17. int dlyVal = 250; // Delay Value Micro Seconds;
  18. //---------------------------------------------------------|
  19. void setup()
  20. {
  21. // Levitator initialization Begin;
  22. Serial.begin(57600);
  23. Serial.println("Levitator by JSyA");
  24. Serial.println("Starting...");
  25. // Digital Pins Work Mode Setup;
  26. pinMode(digPin, OUTPUT);
  27. pinMode(subPin, INPUT_PULLUP);
  28. pinMode(addPin, INPUT_PULLUP);
  29. // Levitator initialization End;
  30. Serial.println("Started.");
  31. }
  32. //---------------------------------------------------------|
  33. void loop()
  34. {
  35. // Hall Sensor Read (Magnetic Field Intensity);
  36. anaVal = analogRead(anaPin);
  37. // Increase The Value Of Levitation Point;
  38. if (digitalRead(addPin) == LOW)
  39. {
  40. levVal++;
  41. value_log();
  42. delay(250);
  43. }
  44. // Decrease The Value Of Levitation Point;
  45. if (digitalRead(subPin) == LOW)
  46. {
  47. levVal--;
  48. value_log();
  49. delay(250);
  50. }
  51. // Check the Levitation Point;
  52. if (anaVal < levVal)
  53. {
  54. digVal = LOW;
  55. }
  56. else // if (anaVal > levVal)
  57. {
  58. digVal = HIGH;
  59. }
  60. //
  61. // Turn ON/OFF The Electromagnet;
  62. // With Base on Sensor Value and the Levitation Point;
  63. digitalWrite(digPin, digVal);
  64. delayMicroseconds(dlyVal);
  65. }
  66. //---------------------------------------------------------|
  67. void value_log()
  68. // Analogic/Digital/Levitation Values Print;
  69. {
  70. // Show the Hall Sensor Value;
  71. Serial.print("anaVal=[");
  72. Serial.print(anaVal);
  73. Serial.print("]-");
  74. // Show the Electromagnet state On=1/Off=0;
  75. Serial.print("digVal=[");
  76. Serial.print(digVal);
  77. Serial.print("]-");
  78. // Show the Levitation Point Value;
  79. Serial.print("levVal=[");
  80. Serial.print(levVal);
  81. Serial.println("];");
  82. }
  83. //=========================================================|
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement