![]() |
|
|
#1 |
|
Senior Member
Регистрация: 11.07.2015
Адрес: Ставрополь
Сообщений: 142
Вес репутации: 0 ![]() |
Приветствую.
Прошу прощения, если тема была, но пока не нашёл. Если что удалите/перенесите. Вопрос в том, что я, как полный ноль в программировании, никак не могу найти простенькие скетчи и слить воедино, чтобы управляя оборотами ШД эти данные вывести на LCD 1602 дисплей. Не сказать, что это жизненно необходимо, но неумение этого как-то слегка огорчает. Регулировку оборотов посредством фоторезистора я с горем/пополам сделал (связал скетч по ШД с регулировкой из стандартного набора с простым фоторезистором вместо переменника). Дальше никак. Может подскажете/поможете? Просьба не посылать учить матчасть. Мне это в жизни понадобилось скорее пока интерес победить не пропал, я этим не зарабатываю и не основное хобби. Однако интерес к ардуино очень большой из-за её возможностей. Прикрепил скетч, может кто всё же направит в нужное русло ![]() Код:
#include <Stepper_28BYJ.h>
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
#define lcd_RS_pin 7
#define lcd_RW_pin 8
#define lcd_E_pin 9
#define lcd_DB4_pin 10
#define lcd_DB5_pin 11
#define lcd_DB6_pin 12
#define lcd_DB7_pin 13
LiquidCrystal lcd(lcd_RS_pin, lcd_RW_pin, lcd_E_pin, lcd_DB4_pin, lcd_DB5_pin, lcd_DB6_pin, lcd_DB7_pin);
// изменить количество шагов для вашего мотора
const int stepsPerRevolution = 4076;
Stepper_28BYJ myStepper_28BYJ(stepsPerRevolution, 2,3,4,5);
int stepCount = 0; // number of steps the motor has taken
//Specify your input pin here
// int sensePin = 0;
const int sensorPin = 0;
const int ledPin = 6; // пин для светодиода
// Также зададим 3 глобальные переменные - lightLevel, high и low
int lightLevel, high = 0, low = 1023;
void setup()
{
//включение ноги светодиода
pinMode(ledPin, OUTPUT);
/*
lcd.begin(16,2); //Инициализируем экран
//Запускает последовательный порт
Serial.begin(9600);
//Сообщение о запуске программы
lcd.setCursor(0, 0); //устанавливаем курсор
lcd.print("Stepper control"); //выводим на него строку
lcd.setCursor(0, 1); //устанавливаем курсор
lcd.print(" "); //выводим на него строку
lcd.setCursor(0, 1); //устанавливаем курсор
lcd.cursor(); //Включим курсор
lcd.blink(); //Пусть мигает
delay(100);
*/
}
void loop()
{
// read the sensor value:
// читаем значение датчика на аналоговом входе 0
int sensorReading = analogRead(A0);
//lightLevel = analogRead(sensorPin);
// map it to a range from 0 to 100:
// масштабируем значение с аналогового входа
// из диапазона 0..1023 в диапазон 0..100
int motorSpeed = map(sensorReading, 0, 4076, 0, 100);
// set the motor speed:
// установить скорость вращения
if (motorSpeed > 0) {
myStepper_28BYJ.setSpeed(motorSpeed);
// step 1/100 of a revolution:
// прощагать 1/100 оборота
myStepper_28BYJ.step(stepsPerRevolution/100);
}
//включаем светодиод
analogWrite(ledPin,3);//светодиод горит на 10 ))
}
Последний раз редактировалось Revenger; 17.11.2015 в 14:11. |
|
|
|
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|