Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int PIN_LED = 12;
- const int PIN_DIPSWITCH = A5;
- const int PIN_SENSOR = 2;
- const int PIN_MOTOR_PUL = 9;
- const int PIN_MOTOR_DIR = 7;
- const int PIN_MOTOR_ENA = 4;
- bool czyObrocil = false;
- // STAŁE DO USTAWIANIA KĄTA OBROTU I SZYBKOŚCI
- // ilość kroków obrotu (pełny obrót 200 kroków)
- const int motor_rot_steps = 100;
- // szybkość obrotu większa wartość wolniej, mniejsza wartość szybciej
- const unsigned int motor_delay = 1000;
- void setup() {
- Serial.begin(9600);
- Serial.print("Start...");
- pinMode(PIN_LED, OUTPUT);
- pinMode(PIN_DIPSWITCH, INPUT);
- pinMode(PIN_SENSOR, INPUT);
- pinMode(PIN_MOTOR_PUL, OUTPUT);
- pinMode(PIN_MOTOR_DIR, OUTPUT);
- pinMode(PIN_MOTOR_ENA, OUTPUT);
- digitalWrite(PIN_MOTOR_ENA, LOW);
- }
- void startMotor() {
- ledON();
- digitalWrite(PIN_MOTOR_DIR, digitalRead(PIN_DIPSWITCH));
- for( int i = 0; i < motor_rot_steps; i++) {
- digitalWrite(PIN_MOTOR_PUL, HIGH);
- delayMicroseconds(motor_delay);
- digitalWrite(PIN_MOTOR_PUL, LOW);
- delayMicroseconds(motor_delay);
- }
- ledOFF();
- czyObrocil = true;
- }
- void ledON() {
- digitalWrite(PIN_LED, HIGH);
- }
- void ledOFF() {
- digitalWrite(PIN_LED, LOW);
- }
- void loop() {
- int sw = digitalRead(PIN_SENSOR);
- if((sw == HIGH) && (czyObrocil == false)) {
- // jeśli czujnik indukcyjny jest włączony i jeszcze nie obracał się silnik w tym połączeniu, to załącza silnik
- startMotor();
- } else {
- // rozłączenie czujnika
- czyObrocil = false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement