Основной сайт · Правила форума | Помощь Поиск по форуму Участники Файлы |
Здравствуйте Гость ( Вход | Регистрация ) | |
Страницы: (5) 1 2 [3] 4 5 ( Перейти к первому непрочитанному сообщению ) |
Геннадий |
Дата 4.11.2016 - 08:40
|
Алексеевка.Белгород. обл. Профиль Группа: Старики Сообщений: 1385 Пользователь №: 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), поэтому мы можем регулировать подачу сигнала с платы на реле, которое будет отвечать за изменение напряжения, подаваемого на вентилятор. Присоединённое изображение |
Геннадий |
Дата 4.11.2016 - 08:41
|
Алексеевка.Белгород. обл. Профиль Группа: Старики Сообщений: 1385 Пользователь №: 3525 На форуме с: 16.01.2007 Имеет предупреждений: (0%) |
Теперь необходимо расположить цифровой датчик температуры, данные которого мы будем использовать для регулирования напряжения, подаваемого на цифровой выход с ШИМ, а следовательно для «открытия» канала напряжения вентилятора. Для датчиков фирмы 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(); } |
Геннадий |
Дата 4.11.2016 - 08:44
|
Алексеевка.Белгород. обл. Профиль Группа: Старики Сообщений: 1385 Пользователь №: 3525 На форуме с: 16.01.2007 Имеет предупреждений: (0%) |
В завершение хотел бы выразить огромную благодарность Илье Данилову (idanilov) за «привитый» интерес к Arduino и за помощь в освоении данной платформы. UPD: Последняя версия LiquidCrystalRus доступна на github. https://github.com/mk90/LiquidCrystalRus Статья слизана с http://mk90.blogspot.ru/2010/08/arduino.html Присоединённое изображение (нажмите для увеличения) |
naik23 |
Дата 1.01.2017 - 19:39
|
ХМАО Урай Профиль Группа: Старики Сообщений: 859 Пользователь №: 17132 На форуме с: 2.05.2010 Имеет предупреждений: (0%) |
Начинаю потихоньку изучать. |
Геннадий |
Дата 2.02.2017 - 15:09
|
Алексеевка.Белгород. обл. Профиль Группа: Старики Сообщений: 1385 Пользователь №: 3525 На форуме с: 16.01.2007 Имеет предупреждений: (0%) |
Данный термостат можно применять для управления микроклимата по температуре и влажности.кому нужен мой скетч пишите на почту .Ссылка на первоисточник под видео.Там скетч и обсуждение. Присоединённое изображение (нажмите для увеличения) |
Геннадий |
Дата 25.08.2017 - 06:11
|
Алексеевка.Белгород. обл. Профиль Группа: Старики Сообщений: 1385 Пользователь №: 3525 На форуме с: 16.01.2007 Имеет предупреждений: (0%) |
Видео http://youtu.be/BOftPtQFUb8 http://youtu.be/KpTU8BqM6UI |
hash |
Дата 15.10.2017 - 07:10
|
Админ Волгоград Профиль Группа: Администраторы Сообщений: 7207 Пользователь №: 1 На форуме с: 3.05.2004 |
Геннадий, дадите согласие на перенос этой темы в новый раздел, он будет в категории "Автомобильная электроника", там и продолжите? Будет очень хороший старт у раздела. -------------------- Чиптюнинг китайских автомобилей, Волгоград.
|
Геннадий |
Дата 15.10.2017 - 07:58
|
||
Алексеевка.Белгород. обл. Профиль Группа: Старики Сообщений: 1385 Пользователь №: 3525 На форуме с: 16.01.2007 Имеет предупреждений: (0%) |
Да,конечно. |
||
garanat |
Дата 15.10.2017 - 11:18
|
г. Хабаровск Профиль Группа: Старики Сообщений: 873 Пользователь №: 27301 На форуме с: 19.09.2013 Имеет предупреждений: (0%) |
|
hash |
Дата 15.10.2017 - 18:39
|
Админ Волгоград Профиль Группа: Администраторы Сообщений: 7207 Пользователь №: 1 На форуме с: 3.05.2004 |
-------------------- Чиптюнинг китайских автомобилей, Волгоград.
|
кобальтт |
Дата 10.12.2017 - 16:07
|
Оренбург Профиль Группа: Профи Сообщений: 31 Пользователь №: 36912 На форуме с: 27.09.2017 Имеет предупреждений: (0%) |
|
кобальтт |
Дата 10.12.2017 - 16:09
|
Оренбург Профиль Группа: Профи Сообщений: 31 Пользователь №: 36912 На форуме с: 27.09.2017 Имеет предупреждений: (0%) |
|
hash |
Дата 12.04.2018 - 22:19
|
Админ Волгоград Профиль Группа: Администраторы Сообщений: 7207 Пользователь №: 1 На форуме с: 3.05.2004 |
-------------------- Чиптюнинг китайских автомобилей, Волгоград.
|
hash |
Дата 15.04.2018 - 07:55
|
||
Админ Волгоград Профиль Группа: Администраторы Сообщений: 7207 Пользователь №: 1 На форуме с: 3.05.2004 |
Вопрос в том где покупать. Оригинальная MEGA от итальянцев продается в России за 3000р., что-то не очень хочется расставаться с такой суммой только за то чтобы попробовать. Остаются ali, ebay и прочие китайские клоны. А тут уже клон клону не ровня, встает задача выбора. Из тех кто обзавелся ардуинкой, может посоветуете конкретную мегу, у вас хоть какой-то опыт в этом вопросе имеется. -------------------- Чиптюнинг китайских автомобилей, Волгоград.
|
||
Геннадий |
Дата 15.04.2018 - 16:53
|
Алексеевка.Белгород. обл. Профиль Группа: Старики Сообщений: 1385 Пользователь №: 3525 На форуме с: 16.01.2007 Имеет предупреждений: (0%) |
https://www.ebay.com/itm/Arduino-Compatible...=item5d599c1f10 |
|
Страницы: (5) 1 2 [3] 4 5 |