Срочно дорого.

Vsaharov
Offline
Зарегистрирован: 28.10.2017

Привет. Нужно вывести на крутилку. регулировку от возможного минимум до 60 в минуту.

И вывести показания на экран.

Все.

Это все что требуется, дорогу оплачу покормлю работу оплачу сразу налом.

Живу в Мытищах. Таскать эту историю уже нет желания куда то.

Leonardo/ 57HS112-4004 / DM542

Если все ок обьясню что дальше, тоже не бесплатно.

Vsaharov
Offline
Зарегистрирован: 28.10.2017

Телефон для связи 8-909-681-08-59

Василий.

vvadim
Offline
Зарегистрирован: 23.05.2012
Onkel
Offline
Зарегистрирован: 22.02.2016

Я в Черноголовке, пишите ydom@mail.ru , приехать смогу , я пару раз в неделю в Москву езжу -заеду сделаю. Предварительно еду в пнд или среду, освобождаюсь часов в  15-17 и на обратном пути могу заехать сделать. Нужны точные данные по дисплею, чтобы я код написал заранее.

ydom@mail.ru

madmax96
Offline
Зарегистрирован: 22.09.2011
brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Что у вас в качестве крутилки, резистор или энкодер ?

Ну пусть будет резистор.

#include <Wire.h> 
#include "LiquidCrystal_I2C.h"
#include "stepperQ.h"

//см. https://lesson.iarduino.ru/page/urok-4-podklyuchenie-lcd1602-po-i2c-k-ar...
LiquidCrystal_I2C lcd(0x27,16,2);  // Устанавливаем дисплей

#define PIN_DIR A4 // нога направление на DM542
#define PIN_STEP A5 // нога шаг на DM542
#define PIN_RES A3 // нога чтения резистора

uint16_t resVal=0;

void setup()
{
  // дисплей 
  lcd.init();                     
  lcd.backlight();// Включаем подсветку дисплея

  // инициализация мотора
  stepperq.init(PIN_DIR,PIN_STEP);
  stepperq.setMaxSpeed(0);
  stepperq.setAcceleration(100); // ускорение мотра , по вкусу
  stepperq.setCurrentPosition(0);
  stepperq.moveTo(0);

  // резистор
  resVal=analogRead(PIN_RES);

}

void loop()
{
  // читаем резистор
  resVal=analogRead(PIN_RES);
  uint8_t motSpeed=map(resVal, 0, 1024, 0, 60);
 
  // показываем скорость
  lcd.setCursor(0, 0);
  lcd.print("Speed:");
  lcd.print(motSpeed);
  lcd.print("  ");
  
  // пересчитываем скорость из оборотов в минуту в шагов в секунду
  // считаем что DM542 в полношаговом режиме и мотор имеет 200 шагов на один оборот
  float temp=(motSpeed*200)/60;
  
  // пнем мотор
  stepperq.setMaxSpeed(temp);
  stepperq.moveTo(0xFFFFFF);
  stepperq.setCurrentPosition(0);
}