Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.11.2015, 13:47   #1
Revenger
Senior Member
 
Регистрация: 11.07.2015
Адрес: Ставрополь
Сообщений: 142
Вес репутации: 0
Revenger is an unknown quantity at this point
По умолчанию Вывод на LCD 1602 оборотов ШД. Как?

Приветствую.
Прошу прощения, если тема была, но пока не нашёл. Если что удалите/перенесите.

Вопрос в том, что я, как полный ноль в программировании, никак не могу найти простенькие скетчи и слить воедино, чтобы управляя оборотами ШД эти данные вывести на 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.
Revenger вне форума   Ответить с цитированием
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 18:21. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика