Страницы: (3) 1 2 [3]  ( Перейти к первому непрочитанному сообщению ) Ответ в темуСоздание новой темы

> Ардуино в автоэлектрике и КДС, Универсальный конструктор
Геннадий
Дата 4.11.2016 - 09:38
Цитировать сообщение

Пользователя сейчас нет на форуме






Алексеевка.Белгород. обл.

Профиль
Группа: Старики
Сообщений: 1264
Пользователь №: 3525
На форуме с: 16.01.2007



Имеет предупреждений:
(0%) -----


Термоконтроллер на Arduino

Эта статья написана не мной, посему - прошу любить и жаловать: сегодня Vergellan поделится с вами опытом создания умного регулятора вращения вентиляторов, с участием термодатчика, LCD-дисплея и, конечно же, Arduino.

Несколько месяцев назад я прочел ряд статей об Arduino и весьма заинтересовался данным девайсом, а вскоре решил приобрести. Надо отметить, что я далек от микроэлектроники, поэтому плата расположила к себе прежде всего относительной простотой в освоении. Набаловавшись с LED-ами и «Hello world»-ами, захотелось сделать что-нибудь практичное, заодно более детально ознакомиться с возможностями Arduino. Памятуя об аномально жарком лете 2010 года, возникла идея собрать регулятор оборотов кулера в зависимости от температуры с выводом всех сопутствующих характеристик на LCD. Надеюсь, что кому-нибудь данная схема или ее вариации смогут пригодиться, поэтому решил выложить свои наброски.


Присоединённое изображение (нажмите для увеличения)
Присоединённое изображение
PMПисьмо на e-mail пользователю
Top
Геннадий
Дата 4.11.2016 - 09:40
Цитировать сообщение

Пользователя сейчас нет на форуме






Алексеевка.Белгород. обл.

Профиль
Группа: Старики
Сообщений: 1264
Пользователь №: 3525
На форуме с: 16.01.2007



Имеет предупреждений:
(0%) -----


Для данной схемы нам понадобится:
Собственно сама плата Arduino или аналог;
Макетная плата для сборки компонентов схемы;
Дисплей WH1601A-NGG-CT с подстроечным резистором на 20 кОм или аналогичный;
Резисторы – 220 Ом, 10 кОм, 4.7 кОм;
Биполярный транзистор SS8050D или аналогичный ему;
Цифровой температурный датчик DS18B20;
Диод 1N4148 или аналог;
Вентилятор осевой трехпроводной (на 12В), например - компьютерный;
Разъем гнезда питания 2,1/5,5 мм.
Компьютерный кулер имеет три провода, два из которых - красный (+12V) и черный (GND) используются для питания, а третий (желтый) связан с таходатчиком, построенном на элементе Холла. К сожалению, 5V с платы нам явно недостаточно, но 6 цифровых выходов Arduino могут работать в режиме ШИМ (они отмечены на самой плате белыми квадратиками, либо буквами PWM), поэтому мы можем регулировать подачу сигнала с платы на реле, которое будет отвечать за изменение напряжения, подаваемого на вентилятор.


Присоединённое изображение
Присоединённое изображение
PMПисьмо на e-mail пользователю
Top
Геннадий
Дата 4.11.2016 - 09:41
Цитировать сообщение

Пользователя сейчас нет на форуме






Алексеевка.Белгород. обл.

Профиль
Группа: Старики
Сообщений: 1264
Пользователь №: 3525
На форуме с: 16.01.2007



Имеет предупреждений:
(0%) -----


Получать информацию об оборотах мы будем с третьего провода от таходатчика, воспользовавшись модифицированным способом, основанным на реализации прерываний, которые у большинства Arduino могут приходить на цифровые pin 2 (прерывание 0) и 3 (прерывание 1). Кстати, у Arduino Mega наличествует еще 4 дополнительных пина с возможностью получения прерываний.

Теперь необходимо расположить цифровой датчик температуры, данные которого мы будем использовать для регулирования напряжения, подаваемого на цифровой выход с ШИМ, а следовательно для «открытия» канала напряжения вентилятора. Для датчиков фирмы Dallas существует собственная библиотека Arduino – DallasTemperature, которую впоследствии мы и будем подключать в скетче. Библиотеку необходимо распаковать в каталог arduino-0018/libraries/.

Осталось последнее – подключить LCD, где у нас будет отображаться вся текущая информация о температуре и скорости вентилятора. Поскольку я использовал для сборки экран WH1601A, могут иметь место известные проблемы с отображением строк. Для их устранения мы воспользуемся библиотекой LiquidCrystalRus, которую необходимо также распаковать в каталог arduino-0018/libraries/.

//Подключаем библиотеку для термодатчика
#include <dallastemperature.h>
//Подключаем библиотеку для LCD
#include <LiquidCrystalRus.h>

#define PowerPin 9 // pin для контроля питания вентилятора
#define HallSensor 2 // pin для датчика оборотов вентилятора (прерывание)
#define TempPin 7 // pin для датчика температуры

LiquidCrystalRus lcd(12, 11, 10, 6, 5, 4, 3); //Подключение LCD
DallasTemperature tempSensor;

int NbTopsFan, Calc, fadeValue; //целочисленные переменные для расчетов
float temper; //вещественная переменная для хранения температуры

typedef struct{ // Вводим новый тип переменных для вентиляторов
char fantype;
unsigned int fandiv;
}fanspec;

//Массив переменных нового типа
fanspec fanspace[3]={{0,1},{1,2},{2,8}};

//Переменная, отвечающая за выбор типа датчика вентилятора (1 – униполярный датчик Холла, 2 –биполярный датчик Холла)
char fan = 2;

//Эта функция у нас будет вызываться при каждом прерывании
void rpm ()
{
NbTopsFan++;
}

// Функция расчета подаваемого напряжения на цифровой pin с ШИМ
void temp ()
{
fadeValue = min(int(temper*7),255); // Умножаем температуру на коэффициент,
// берем от произведения целое число
} // Т.к. максимальное значение ШИМ составляет 255, то подавать больше не имеет смысла – берем минимум из двух

void setup()
{
tempSensor.begin(TempPin); //Запускаем температурный датчик
lcd.begin(16, 2); //Задаем характеристики LCD
lcd.setDRAMModel(LCD_DRAM_WH1601); //И тип дисплея
pinMode(HallSensor, INPUT); // Настраиваем pin на получение прерываний
attachInterrupt(0, rpm, RISING); //Привязываем прерывание по номеру 0 к нашей функции, причем высчитываться она будет каждый раз при смене сигнала
}

void loop ()
{
temper = tempSensor.getTemperature(); // Получаем температуру
temp(); // Высчитываем подаваемое напряжение на ШИМ
analogWrite(PowerPin, fadeValue); // Подаем его
NbTopsFan = 0; // Обнуляем переменную, содержащую обороты
delay (1000); //Ждем 1 секунду
Calc = ((NbTopsFan * 60)/fanspace[fan].fandiv); //Рассчитываем величину оборотов за 60 секунд, поделенную на множитель вентилятора
lcd.print (Calc, DEC); //Выводим рассчитанную величину в десятичном виде
lcd.print (" rpm - ");
lcd.print(temper); //Выводим температуру
lcd.home();
}
PMПисьмо на e-mail пользователю
Top
Геннадий
Дата 4.11.2016 - 09:44
Цитировать сообщение

Пользователя сейчас нет на форуме






Алексеевка.Белгород. обл.

Профиль
Группа: Старики
Сообщений: 1264
Пользователь №: 3525
На форуме с: 16.01.2007



Имеет предупреждений:
(0%) -----


У меня финальная схемка выглядит так (часть компонентов перенес с макетки на дополнительную плату, т.к. планирую сделать уже готовый регулятор в нормальном корпусе):
В завершение хотел бы выразить огромную благодарность Илье Данилову (idanilov) за «привитый» интерес к Arduino и за помощь в освоении данной платформы.

UPD: Последняя версия LiquidCrystalRus доступна на github. https://github.com/mk90/LiquidCrystalRus

Статья слизана с http://mk90.blogspot.ru/2010/08/arduino.html


Присоединённое изображение (нажмите для увеличения)
Присоединённое изображение
PMПисьмо на e-mail пользователю
Top
naik23
Дата 1.01.2017 - 20:39
Цитировать сообщение

Пользователя сейчас нет на форуме






ХМАО Урай

Профиль
Группа: Старики
Сообщений: 644
Пользователь №: 17132
На форуме с: 2.05.2010



Имеет предупреждений:
(0%) -----


http://arduino.ru/Hardware Аппаратная часть платформы Arduino,также приведены их схемы.
Начинаю потихоньку изучать.
PMПисьмо на e-mail пользователю
Top
Геннадий
Дата 2.02.2017 - 16:09
Цитировать сообщение

Пользователя сейчас нет на форуме






Алексеевка.Белгород. обл.

Профиль
Группа: Старики
Сообщений: 1264
Пользователь №: 3525
На форуме с: 16.01.2007



Имеет предупреждений:
(0%) -----


Собрал на столе суточный термостат с регулировкой влажности, моё видео можно посмотреть тут: http://youtu.be/dIvGjAJO--U
Данный термостат можно применять для управления микроклимата по температуре и влажности.кому нужен мой скетч пишите на почту .Ссылка на первоисточник под видео.Там скетч и обсуждение.


Присоединённое изображение (нажмите для увеличения)
Присоединённое изображение
PMПисьмо на e-mail пользователю
Top
Геннадий
Дата 25.08.2017 - 07:11
Цитировать сообщение

Пользователя сейчас нет на форуме






Алексеевка.Белгород. обл.

Профиль
Группа: Старики
Сообщений: 1264
Пользователь №: 3525
На форуме с: 16.01.2007



Имеет предупреждений:
(0%) -----


Простой регулятор оборотов коллекторных двигателей переменного тока (болгарка,дрель,пылесос, и подобные)без потери мощности на низких оборотах,применим для стенда проверки генераторов http://shenrok.blogspot.ru/p/blog-page_80.html

Видео http://youtu.be/BOftPtQFUb8

http://youtu.be/KpTU8BqM6UI
PMПисьмо на e-mail пользователю
Top
hash
Дата 15.10.2017 - 08:10
Цитировать сообщение

Пользователя сейчас нет на форуме



Админ


Волгоград

Профиль
Группа: Администраторы
Сообщений: 6699
Пользователь №: 1
На форуме с: 3.05.2004





Полезная тема, развивающая, считаю что есть смысл создать на форуме раздел по микроконтроллерам, ведь ими нашпигованы все блоки управления на автомобиле, у того же эбу двигателя сердцем является микроконтроллер, который мы почему-то называем процессором.
Геннадий, дадите согласие на перенос этой темы в новый раздел, он будет в категории "Автомобильная электроника", там и продолжите? Будет очень хороший старт у раздела.


--------------------
Чиптюнинг GW Hover, Рено Дастер, Lifan X60 в Волгограде, и городах России. 927-25З-7О88
PMПисьмо на e-mail пользователюСайт пользователяICQ
Top
Геннадий
Дата 15.10.2017 - 08:58
Цитировать сообщение

Пользователя сейчас нет на форуме






Алексеевка.Белгород. обл.

Профиль
Группа: Старики
Сообщений: 1264
Пользователь №: 3525
На форуме с: 16.01.2007



Имеет предупреждений:
(0%) -----


Цитата (hash @ 15.10.2017 - 08:10)

Геннадий, дадите согласие на перенос этой темы в новый раздел, он будет в категории "Автомобильная электроника", там и продолжите?

Да,конечно.
PMПисьмо на e-mail пользователю
Top
garanat
Дата 15.10.2017 - 12:18
Цитировать сообщение

Пользователя сейчас нет на форуме






г. Хабаровск

Профиль
Группа: Старики
Сообщений: 538
Пользователь №: 27301
На форуме с: 19.09.2013



Имеет предупреждений:
(0%) -----


А правила в этой теме какие? Просто пишем, что у кого есть. А если вопрос по ардуине - новую тему или как?
PMПисьмо на e-mail пользователю
Top
hash
Дата 15.10.2017 - 19:39
Цитировать сообщение

Пользователя сейчас нет на форуме



Админ


Волгоград

Профиль
Группа: Администраторы
Сообщений: 6699
Пользователь №: 1
На форуме с: 3.05.2004





Раздел по МК, все что относится к ним, то и пишем, спрашиваем, отвечаем. Если необходима новая тема по Ардуино, то в заголовке желательно это указать.


--------------------
Чиптюнинг GW Hover, Рено Дастер, Lifan X60 в Волгограде, и городах России. 927-25З-7О88
PMПисьмо на e-mail пользователюСайт пользователяICQ
Top
кобальтт
Дата 10.12.2017 - 17:07
Цитировать сообщение

Пользователя сейчас нет на форуме






Оренбург

Профиль
Группа: Профи
Сообщений: 31
Пользователь №: 36912
На форуме с: 27.09.2017



Имеет предупреждений:
(0%) -----


есть очень полезная программа для програмирования ардуино flprog на русском
PMПисьмо на e-mail пользователюСайт пользователя
Top
кобальтт
Дата 10.12.2017 - 17:09
Цитировать сообщение

Пользователя сейчас нет на форуме






Оренбург

Профиль
Группа: Профи
Сообщений: 31
Пользователь №: 36912
На форуме с: 27.09.2017



Имеет предупреждений:
(0%) -----


описание модулей в программе существенно ускоряет понимание
PMПисьмо на e-mail пользователюСайт пользователя
Top
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:


Опции темыСтраницы: (3) 1 2 [3]  Ответ в темуСоздание новой темы