Варочная панель.
- Войдите на сайт для отправки комментариев
Сб, 01/06/2019 - 09:23
Здравствуйте граждане.
Суть, имеется панель на два нагревательных элемента. Атмега8, 328, 168, сенсорные кнопки ТРР223, сегмент SS4065 и твёрдотельное реле.
Неоходимо это всё подружить. Вкл/выкл, плюс, минус, с выводом на сегмент шаговай мощности 1-15%, 2-30%, 3-45%, 4-60%, 5-75%, 6-90%, 7-100%. Твёрдотельное реле исполнено на МОС3061-переход через 0 не нужен.
Помогите!
Это вам в "ищу исполнителя", но новая панель будет дешевле, раз в пять :) Дружба дорогого стоит :)
кто-то здесь на форуме уже прикручивал, только кнопки сенсорные были
кто-то здесь на форуме уже прикручивал, только кнопки сенсорные были
... сенсорные кнопки ТРР223...
Второй день штудирую форум, не встречал, может подскажете ссылкой.
Спасибо.
кто-то здесь на форуме уже прикручивал, только кнопки сенсорные были
... сенсорные кнопки ТРР223...
Второй день штудирую форум, не встречал, может подскажете ссылкой.
Спасибо.
закладок не делал да и не знаю как )))
Протестировал кнопки на атмега168, дребезг напрочь отсутствует. Пару А замкнул, т.к. на пинах 8,9 должна быть 1.
https://mysku.ru/blog/aliexpress/48317.html
int led = 11; // Номер Pin к которому подключен диод int brightness =0; // Переменная в которой хранится уровень яркости (От 0 до 254) int buttonPlus=9; // Номер Pin к которому подключена кнопка int buttonMinus=10; // Номер Pin к которому подключена кнопка - void setup() { pinMode(led, OUTPUT); // Порт 11 (led) будет работать как Выход. } void loop() { // Этот цикл будет выполняться бесконечное количество раз. if (digitalRead(buttonPlus) == HIGH) { brightness += 36; } // Делаем проверку, если вход под номером 9 (buttonPlus) имеет состояние 5 В. Увеличиваем значение переменной яркости на 5 единиц. if (digitalRead(buttonMinus) == HIGH) { brightness -= 36; } // Делаем проверку, если вход под номером 10 (buttonMinus) имеет состояние 5 В. Уменьшаем значение переменной яркости на 5 единиц. brightness = constrain(brightness, 0, 252); // Эта функция контролирует, что бы переменная brightness не стала больше 254 и меньше 0, если значение вылазит за границу то функция 0 или 254 analogWrite(led, brightness); // Устанавливаем состояние яркости для светодиода delay(100); // Пауза 50 миллисекунд. }Теперь задача подружить это с 7-ми сегментным индикатором. Ошибся с названием, SS406SURWA-A4.
https://aredi.ru/svetodiodnyy_displey_7_seg_ss406surwas530_a4s290_6899274711.html
int anodPins[] = {A1, A2}; // Задаем пины для кажого разряда int segmentsPins[] = {5, 6, 7, 8, 9, 10, 11, 12}; //Задаем пины для каждого сегмента (из 7 + 1(точка)) void setup() { // Все выходы программируем как OUTPUT for (int i = 0; i < 4; i++) { pinMode(anodPins[i], OUTPUT); } for (int i = 0; i < 8; i++) { pinMode(segmentsPins[i], OUTPUT); } } //{A, B, C, D, E, F, G,DP} - распиновка сегментов int seg[10][8] = { {1, 1, 1, 1, 1, 1, 0, 0}, //Цифра 0 {0, 1, 1, 0, 0, 0, 0, 0}, //Цифра 1 {1, 1, 0, 1, 1, 0, 1, 0}, //Цифра 2 {1, 1, 1, 1, 0, 0, 1, 0}, //Цифра 3 {0, 1, 1, 0, 0, 1, 1, 0}, //Цифра 4 {1, 0, 1, 1, 0, 1, 1, 0}, //Цифра 5 {1, 0, 1, 1, 1, 1, 1, 0}, //Цифра 6 {1, 1, 1, 0, 0, 0, 0, 0}, //Цифра 7 {1, 1, 1, 1, 1, 1, 1, 0}, //Цифра 8 {1, 1, 1, 1, 0, 1, 1, 0} //Цифра 9 }; int t = 0; int digid = 0; void loop() { t += 1; if (t > 9999) t = 0; if ((t % 1000) == 0) { digid = t / 1000; //Каждую секунду отображаем цифры подряд } for (int i = 0; i < 4; i++) { // Каждый разряд по очереди for (int k = 0; k < 8; k++) {// Каждый сегмент по очереди - исходя из заданной карты digitalWrite(segmentsPins[k], ((seg[digid][k] == 1) ? HIGH : LOW)); } digitalWrite(anodPins[i], HIGH); delay(1); digitalWrite(anodPins[i], LOW); } }Протестировал кнопки на атмега168, дребезг напрочь отсутствует. Пару А замкнул, т.к. на пинах 8,9 должна быть 1.
конкретно, какую пару??? На контроллере ничего просто так замыкать нельзя, для усиления есть транзисторы!!!
строка 01 и 06 второго кода - зачем?! и почему...
Протестировал кнопки на атмега168, дребезг напрочь отсутствует. Пару А замкнул, т.к. на пинах 8,9 должна быть 1.
конкретно, какую пару??? На контроллере ничего просто так замыкать нельзя, для усиления есть транзисторы!!!
строка 01 и 06 второго кода - зачем?! и почему...
Замклул на кнопке. Пара "А."
Вот нашёл более менее подходяшее под реализацию. Хотелось бы спросить, как выкинуть лишний мусор? ИК и что сним связано. Ещё бы разрядность для сегментов добавить.
Спасибо.
Удалось выкинуть лишнее, детектор нуля бы ещё выбросить.