шаговик реле дисплей и кнопки дл регулировки количества шагов в цикле

Тема в разделе "Закажу проект", создана пользователем иванegorka, 20 апр 2018.

  1. такая вот штука, все работает но дописать кнопки регулировки с менюнкойи вывод на дисплей меня нехватает

    #include <LiquidCrystal_I2C.h>

    LiquidCrystal_I2C lcd(0x27, 16, 2);

    #include <AccelStepper.h>

    AccelStepper Stepper1(1, 13, 12); //использует пин 12 и 13 для dir и step, 1 - режим "external driver" (A4988)

    int dir = 1;

    int a = 0;

    int relayPin = 11;

    int b = (3400);

    void setup() {

    lcd.init();

    lcd.backlight();
    lcd.setCursor(0, 1);

    lcd.print(b);

    pinMode (relayPin, OUTPUT);

    digitalWrite (relayPin, HIGH);

    }

    void loop() {

    Stepper1.setMaxSpeed(1500.0);
    Stepper1.setAcceleration(1500.0);
    if (Stepper1.distanceToGo() == 0) {
    digitalWrite (relayPin, LOW);
    delay(30);
    Stepper1.move(b);
    delay(500);

    }
    if (Stepper1.distanceToGo() == b)
    {
    digitalWrite (relayPin, HIGH);
    delay(30);
    a = 0;
    }
    Stepper1.run(); //запуск шагового двигателя. Эта строка повторяется вновь и вновь для непрерывного вращения двигателя

    }
     
  2. вот чтото получилось ))) но этого мало

    #include <LiquidCrystal_I2C.h>

    LiquidCrystal_I2C lcd(0x27, 16, 2);

    #include <iarduino_Encoder_tmr.h> // Подключаем библиотеку iarduino_Encoder_tmr для работы с энкодерами через аппаратный таймер

    iarduino_Encoder_tmr enc(9, 10); // Объявляем объект enc для работы с энкодером указывая (№ вывода A, № вывода B)
    int b = 850;


    #include <AccelStepper.h>

    AccelStepper Stepper1(1, 13, 12); //использует пин 12 и 13 для dir и step, 1 - режим "external driver" (A4988)
    int dir = 1;

    int a = 0;

    int relayPin = 11;
    int i = enc.read();

    void setup() {
    pinMode (relayPin, OUTPUT);
    digitalWrite (relayPin, HIGH);
    Serial.begin(9600); // Инициируем передачу данных в монитор последовательного порта
    enc.begin(); // Инициируем работу с энкодером
    // Читаем состояние энкодера в переменную i
    lcd.init();
    lcd.backlight();
    lcd.print("shtamp");

    }

    void loop() {
    int i = enc.read(); // Читаем состояние энкодера в переменную i
    if (i) { // Если энкодер зафиксировал поворот, то ...
    Stepper1.stop();
    b = b + i; /* b+=i*/ // Меняем значение счётчика n, т.к. в переменной i находится -1 (при повороте влево), или +1 (при повороте вправо).
    Serial.println(b);
    lcd.setCursor(4, 1);
    lcd.print(b); // Выводим значение счётчика n
    if (b=b){
    a=0;
    Stepper1.setMaxSpeed(2000.0);
    Stepper1.setAcceleration(1000.0);
    if (Stepper1.distanceToGo() == 0) {
    digitalWrite (relayPin, LOW);
    delay(30);
    Stepper1.move(b);
    delay(5);

    }
    if (Stepper1.distanceToGo() == b)
    {
    digitalWrite (relayPin, HIGH);
    delay(3);
    a = 0;
    }
    Stepper1.run(); //запуск шагового двигателя. Эта строка повторяется вновь и вновь для непрерывного вращения двигателя

    }
    Stepper1.run();
    }
    Stepper1.run();
    }
     
  3. ostrov

    ostrov Гуру

  4. vvr

    vvr Инженерище

    если хотите заказать работу напишите просто свою задачу.
    то что у вас есть сейчас исполнителя не интересует...
     
    Developer-RU и ostrov нравится это.