Advertisement
Guest User

Untitled

a guest
May 26th, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const int PIN_LED = 12;
  2. const int PIN_DIPSWITCH = A5;
  3. const int PIN_SENSOR = 2;
  4.  
  5. const int PIN_MOTOR_PUL = 9;
  6. const int PIN_MOTOR_DIR = 7;
  7. const int PIN_MOTOR_ENA = 4;
  8.  
  9. bool czyObrocil = false;
  10.  
  11. // STAŁE DO USTAWIANIA KĄTA OBROTU I SZYBKOŚCI
  12. // ilość kroków obrotu (pełny obrót 200 kroków)
  13. const int motor_rot_steps = 100;
  14.  
  15. // szybkość obrotu większa wartość wolniej, mniejsza wartość szybciej
  16. const unsigned int motor_delay = 1000;
  17.  
  18. void setup() {
  19.   Serial.begin(9600);
  20.   Serial.print("Start...");
  21.  
  22.   pinMode(PIN_LED, OUTPUT);
  23.   pinMode(PIN_DIPSWITCH, INPUT);
  24.   pinMode(PIN_SENSOR, INPUT);
  25.  
  26.   pinMode(PIN_MOTOR_PUL, OUTPUT);
  27.   pinMode(PIN_MOTOR_DIR, OUTPUT);
  28.   pinMode(PIN_MOTOR_ENA, OUTPUT);
  29.   digitalWrite(PIN_MOTOR_ENA, LOW);
  30.  
  31. }
  32.  
  33. void startMotor() {
  34.   ledON();
  35.   digitalWrite(PIN_MOTOR_DIR, digitalRead(PIN_DIPSWITCH));
  36.   for( int i = 0; i < motor_rot_steps; i++) {
  37.     digitalWrite(PIN_MOTOR_PUL, HIGH);
  38.     delayMicroseconds(motor_delay);
  39.     digitalWrite(PIN_MOTOR_PUL, LOW);
  40.     delayMicroseconds(motor_delay);
  41.   }
  42.   ledOFF();
  43.   czyObrocil = true;
  44. }
  45.  
  46. void ledON() {
  47.   digitalWrite(PIN_LED, HIGH);
  48. }
  49.  
  50. void ledOFF() {
  51.   digitalWrite(PIN_LED, LOW);
  52. }
  53.  
  54. void loop() {
  55.   int sw = digitalRead(PIN_SENSOR);
  56.   if((sw == HIGH) && (czyObrocil == false)) {
  57.     // jeśli czujnik indukcyjny jest włączony i jeszcze nie obracał się silnik w tym połączeniu, to załącza silnik
  58.     startMotor();
  59.   } else {
  60.     // rozłączenie czujnika
  61.     czyObrocil = false;
  62.   }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement