Спасибо всем за помощь. Вот такую платку накучерявил.
GEN пишет:
3 ногу меги обязательно притянуть к+, 21 соеденить с 20
Выходит 3, 20 и 21 на +5 вольт, правильно?
Ну вот , а говорил, рисовальщик " Так себе..." Получилось ведь. Все мы когда то были " так себе ", главное захотеть, ну и немножко знать правила построения ПП.))))
Здраствуйте , подскажите пожалуйста в прошивке 2.1.1 кулер фена при включении стартует не сразу а при достижении около 300 градусов.Мне нужно чтоб стартовал кулер сразу, в какой строке можно это изменить?
все там сразу стартует, только на пониженных оборотах, пока не достигнет -50 от установленной. это нужно для более бытрого прогрева. а если не стартует -это потому, что на кулер идет шим, и он отказывается работать не на полных оборотах.
хочется обороты побольше, можно изменить множитель ((setHotAirCooler-100)*0.5 +100));
ой чет я сам уже запутался. попробуй поменять analogWrite(pinHotAirCoolerOut, 100); на analogWrite(pinHotAirCoolerOut, setHotAirCooler); забыл уже, да и не разбирался я с феном тут, надо у Link спрашивать может он помнит. но если ненадо чтоб обороты при нагреве уменьшались, можно просто выкинуть первое условие
Здравствуйте ! Господа , вполне возможно что я совсем не в тему , но видя такое бурное обсуждение девайса - наберусь смелости задать вопрос : наваял паяльный фен, кто бы глянул , потыкал в возможные косяки в коде ..
Здравствуйте ! Господа , вполне возможно что я совсем не в тему , но видя такое бурное обсуждение девайса - наберусь смелости задать вопрос : наваял паяльный фен, кто бы глянул , потыкал в возможные косяки в коде ..
Да, там реле, с отогнутыми контакатами для SMD монтажа. Марку не подскажу, в радиомагазине самое дешевое взял. Катушка 24в, ток 5-10а (точно не помню). На плате есть две перемычки для катушки реле.
Плату создал уважаемый operator, прошивка должна работать на его плате. Я немного силовю часть переделал, чтоб реле на текстолит впихнуть.
Обратите внимание, семистор монтируется со стороны дорожек, а оптопара на обратной (чистой) стороне текстолита
здравствуйте, собираю данную паяльную станцию. Все спаял до кучи, запрограммировал, запустил. Паяльник греется. Фен греется и крутится вентилятор в фене. Вроде нормално, но показания обоих термопар - 0. Проверил на микроконтроллере - на входах, отвечающих за термопары - по нолям. Как можно проверить LM358? Термопары через нее идут, может в ней что-то? Не знаю как проверить.
вода с тающим льдом 0 гр., кипящая вода 100 гр. при пайке все равно выбираешь удобную температуру, так как пайка на полигонах требует завышенной температуры.
а для точной калибровки нужно было делать соответствующую обвязку для ОУ и иметь внешнию калиброваную термопару с показометром, думаю у вас ни первого, ни второго не имеется. и оно вам и не нужно.?, раз был задан такой вопрос. удачи...
Уважаемый Halvalife,можно попросить у вас разработанную вами схему в формате lay.хочу собрать ее.и нужно ли править скетч к нему,у меня скетч от Олега версии 0,5.
Ещё такой вопрос - какая печатка разведена наиболее оптимально? Интересует разводка под дип.
На 64 странице я выкладывал архив , в нём Лайотовский файл с подправленной печаткой, и несколько других. Под Дип называетса Универсальная, но в ней усилитель сигналов под термопару. Если нужно под терморезистор, то там же есть печатка на Мини Про, называется PRO MINI DIP OlegK Termoresist. Она более оптимизированная под ДИП
смысл паяльной ифк станции - удобство и надежность. задаешь температуру по профилю и она плавно набирается. И НИ В КОЕМ случае не должна превышать заданое значение - поджаришь плату. недогрев также чреват - плату поведет, при дополнительном догреве вздуется маска из-за длительного нагрева.
del
Спасибо всем за помощь. Вот такую платку накучерявил.
3 ногу меги обязательно притянуть к+, 21 соеденить с 20
Выходит 3, 20 и 21 на +5 вольт, правильно?
Здраствуйте , подскажите пожалуйста в прошивке 2.1.1 кулер фена при включении стартует не сразу а при достижении около 300 градусов.Мне нужно чтоб стартовал кулер сразу, в какой строке можно это изменить?
https://yadi.sk/d/cX06KDUd3UcEix
все там сразу стартует, только на пониженных оборотах, пока не достигнет -50 от установленной. это нужно для более бытрого прогрева. а если не стартует -это потому, что на кулер идет шим, и он отказывается работать не на полных оборотах.
хочется обороты побольше, можно изменить множитель ((setHotAirCooler-100)*0.5 +100));
В какую сторону и какое значение менять?
ой чет я сам уже запутался. попробуй поменять analogWrite(pinHotAirCoolerOut, 100); на analogWrite(pinHotAirCoolerOut, setHotAirCooler); забыл уже, да и не разбирался я с феном тут, надо у Link спрашивать может он помнит. но если ненадо чтоб обороты при нагреве уменьшались, можно просто выкинуть первое условие
уважаемый dedsov в посте 3716 вы выложили печатки и прошивку меня интересует та часть которая выделена красным цветом
что там установленно
Похоже на реле
возможно но поточнее марка и т.д.
Реле JQC-3FF-24VDC , Ноги отогнуть в сторону получитса smd rele
спасибо !!!!!!!!!!
Здравствуйте ! Господа , вполне возможно что я совсем не в тему , но видя такое бурное обсуждение девайса - наберусь смелости задать вопрос : наваял паяльный фен, кто бы глянул , потыкал в возможные косяки в коде ..
Здравствуйте ! Господа , вполне возможно что я совсем не в тему , но видя такое бурное обсуждение девайса - наберусь смелости задать вопрос : наваял паяльный фен, кто бы глянул , потыкал в возможные косяки в коде ..
Да, там реле, с отогнутыми контакатами для SMD монтажа. Марку не подскажу, в радиомагазине самое дешевое взял. Катушка 24в, ток 5-10а (точно не помню). На плате есть две перемычки для катушки реле.
Плату создал уважаемый operator, прошивка должна работать на его плате. Я немного силовю часть переделал, чтоб реле на текстолит впихнуть.
Обратите внимание, семистор монтируется со стороны дорожек, а оптопара на обратной (чистой) стороне текстолита
здравствуйте, собираю данную паяльную станцию. Все спаял до кучи, запрограммировал, запустил. Паяльник греется. Фен греется и крутится вентилятор в фене. Вроде нормално, но показания обоих термопар - 0. Проверил на микроконтроллере - на входах, отвечающих за термопары - по нолям. Как можно проверить LM358? Термопары через нее идут, может в ней что-то? Не знаю как проверить.
разобрался сам. Я допустил ошибку в сборке, исправил, показания пошли, теперь их как то откалибровать бы. Как это можно сделать?
вода с тающим льдом 0 гр., кипящая вода 100 гр. при пайке все равно выбираешь удобную температуру, так как пайка на полигонах требует завышенной температуры.
а для точной калибровки нужно было делать соответствующую обвязку для ОУ и иметь внешнию калиброваную термопару с показометром, думаю у вас ни первого, ни второго не имеется. и оно вам и не нужно.?, раз был задан такой вопрос. удачи...
не могу найти транзисторы в нашем захалустье подойдут ли IRLML0040TRPBF вот краткое описание
Структура n-канал
Максимальное напряжение сток-исток Uси,В 40
Максимальный ток сток-исток при 25 С Iси макс..А 3.6
Максимальное напряжение затвор-исток Uзи макс.,В ±16
Сопротивление канала в открытом состоянии Rси вкл.,мОм 78
Максимальная рассеиваемая мощность Pси макс..Вт 1.3
Крутизна характеристики, S 6.2
Корпус sot23
Пороговое напряжение на затворе 1…2.5
Этот лучше не ставить. Подойдут IRLML0030, AO3404A или IRLML6344
Уважаемый Halvalife,можно попросить у вас разработанную вами схему в формате lay.хочу собрать ее.и нужно ли править скетч к нему,у меня скетч от Олега версии 0,5.
Ахах, разработанную вами... Ничего я не разрабатывал, а только дополнил по рекомендациям форумчан.
Плату себе уже потравил, никак руки не дойдут распаять детали, комутацию - подключить да проверить.
Так что обязательно перед реализацией платы проверьте ее. Скетч 2.1.1
https://drive.google.com/open?id=1Hh65C4Sl6wtiJiIY0808_Jo0X-PanNOX
https://drive.google.com/open?id=1XNRYy_NuI8hHwUfNKWNRc000Nw30znZa
А есть у кого плата и прошивка только для фена с магнитной подставкой?
Есть.
Есть.
А где взять можно? )
Есть.
А где взять можно? )
Есть.
А где взять можно? )
сори за 3 раза
А есть у кого плата и прошивка только для фена с магнитной подставкой?
Добрый день, уважаемые форумчане.
Ув. kabazyaka, на Вашей схеме увидал
дорожки (обведено) и не понял их назначение. Выводы под smd кварц?
Просветите, пожалуйста.
Забыл добавить - плата вер. 20.01.2017
Да, именно под SMD кварц.
Ещё такой вопрос - какая печатка разведена наиболее оптимально? Интересует разводка под дип.
Да, Ваш архив я видел, с него и первый вопрос был☺.
Под терморезистор если будет надо переразведу.
Может у кого то есть готовая печатка? Если да - цена вопроса?
Привет всем! Простите если пропустил. Нужно подключить дисплей по шине I2C. Что поменять в скетче? Запарился уже эксперементировать. Помогите.
вместо:
не работает. что еще нужно?
этот скетч:
#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x3f, 20, 4); //i2c-адрес, кол-во символов, кол-во строк void setup() { lcd.init(); lcd.backlight(); } void loop() { for (char x=33; x<=125; x++) { lcd.print(x); //вывод переменной на дисплей delay(250); if (x==125) lcd.clear(); //очистка дисплея } }работает.
индикатор 2004, библиотека https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library/archive/master.zip
мне нужно этот скетч:
#include <LiquidCrystal.h> LiquidCrystal lcd(13, 12, 11, 10, 9, 8); // Выходы для дисплея 1602 boolean FAN = true; int pinSolderOut = 5; // Выход для паяльника int pinSolderIn = A4; // Потенциометр паяльника int pinSolderTCouple = A3; // Термопара паяльника int pinSolderButton = 2; // Кнопка вкл. и выкл. паяльника int pinHotAirOut = 6; // Выход для фена int pinHotAirIn = A2; // Потенциометр фена int pinHotAirTCouple = A1; // Термопара фена int pinHotAirCoolerOut = 3; // Выход для вентилятора фена ( PWM ) int pinHotAirCoolerIn = A0; // Потенциометр вентилятора фена int pinHotAirButton = 4; // Кнопка вкл.и выкл. фена int pinGerkon = A5; // Геркон фена 28ая нога int pinRele = 7; //На управление реле(13я нога меги) uint8_t char_cel[8] = { B00111, B00101, B00111, B00000, B00000, B00000, B00000 }; void setup() { //TCCR2B = TCCR2B & 0b11111000 | 0x02; //кулер фена 24v. Частота ШИМ 11 и 3 TCCR2B = TCCR2B & B11111000 | B00000011; // 980.39 Hz //TCCR1B = TCCR1B & B11111000 | B00000010; // 3921.16 Hz //TCCR2B = TCCR2B & B11111000 | B00000001; // 31372.55 Hz pinMode(pinSolderOut, OUTPUT); pinMode(pinSolderButton, INPUT); pinMode(pinHotAirOut, OUTPUT); pinMode(pinHotAirButton, INPUT); pinMode(pinGerkon, INPUT); pinMode(pinRele, OUTPUT); lcd.begin(16, 2); lcd.createChar(1, char_cel); // Вывод приветствия lcd.setCursor(0, 0); lcd.print("SOLDER STATION"); lcd.setCursor(0, 1); lcd.print("ver. 0.7"); // задержка delay (2500); lcd.clear(); } void loop() { if (Gerkon == 1) //проверка геркона { digitalRead(pinGerkon); } else { pinGerkon = HIGH; //откл геркон } // Преобразовываем значения int setSolderTemp = map(analogRead(pinSolderIn), 0, 1023, 0, 480); int solderTCouple = map(analogRead(pinSolderTCouple), 0, 750, 0, 480); int setHotAirTemp = map(analogRead(pinHotAirIn), 0, 1023, 0, 480); int hotAirTCouple = map(analogRead(pinHotAirTCouple), 0, 750, 0, 480); int setHotAirCooler = map(analogRead(pinHotAirCoolerIn), 0, 1023, 100, 255); int displayHotAirCooler = map(analogRead(pinHotAirCoolerIn), 0, 1023, 0, 99); // Защита, если не работает термопара if (solderTCouple > 481) { setSolderTemp = 0; } if (hotAirTCouple > 481) { setHotAirTemp = 0; } // Поддержка установленной температуры паяльника if (setSolderTemp >= solderTCouple && digitalRead(pinSolderButton) == HIGH) { digitalWrite(pinSolderOut, LOW); //delay(100); digitalWrite(pinSolderOut, HIGH); } else { digitalWrite(pinSolderOut, LOW); } //Защита от пробоя симистора/замыкания термопары (замыкаем реле) if (digitalRead(pinHotAirButton) == HIGH && setHotAirTemp+100> pinHotAirTCouple && pinHotAirTCouple<480){ digitalWrite(pinRele, HIGH); } else { digitalWrite(pinRele, LOW); } // Поддержка установленной температуры фена if (setHotAirTemp >= hotAirTCouple && digitalRead(pinHotAirButton) == HIGH && digitalRead(pinGerkon) == HIGH) { digitalWrite(pinHotAirOut, HIGH); delay(90); digitalWrite(pinHotAirOut, LOW); } else { digitalWrite(pinHotAirOut, LOW); } /* Установка оборотов вентилятора фена if (hotAirTCouple <= 75 && digitalRead(pinHotAirButton) == LOW) { analogWrite(pinHotAirCoolerOut, 0); } else { analogWrite(pinHotAirCoolerOut, setHotAirCooler); }*/ if (hotAirTCouple > 70 && digitalRead(pinHotAirButton) == LOW && FAN) //Продувка фена после выключения { analogWrite(pinHotAirCoolerOut, 255); } else if (hotAirTCouple <= 70 && digitalRead(pinHotAirButton) == LOW && FAN) { analogWrite(pinHotAirCoolerOut, 0); FAN = false; } else if (hotAirTCouple < 90 && digitalRead(pinHotAirButton) == LOW && FAN == false) { analogWrite(pinHotAirCoolerOut, 0); } else if (hotAirTCouple > 90 && digitalRead(pinHotAirButton) == LOW && FAN == false) { FAN = true; analogWrite(pinHotAirCoolerOut, 255); } else { analogWrite(pinHotAirCoolerOut, setHotAirCooler); FAN = true; } // Убираем прыганье цифр if ((setSolderTemp + 5) > solderTCouple && (setSolderTemp - 3) < solderTCouple) { solderTCouple = setSolderTemp; } if ((setHotAirTemp + 15) > hotAirTCouple && (setHotAirTemp - 5) < hotAirTCouple) { hotAirTCouple = setHotAirTemp; } // Данные паяльника на дисплей lcd.clear(); lcd.print("Solder:"); lcd.setCursor(7, 0); if (digitalRead(pinSolderButton) == HIGH) { if (solderTCouple < 480) { lcd.print(setSolderTemp); lcd.print("\1"); lcd.setCursor(12, 0); lcd.print(solderTCouple); lcd.print("\1"); } else { lcd.print(" Warning"); } } //Температура выключенного паяльника на дисплей до 60 градусов else if (solderTCouple > 60 && digitalRead(pinSolderButton) == LOW && solderTCouple < 480) { lcd.print(" Off"); lcd.setCursor(12, 0); lcd.print(solderTCouple); lcd.print("\1"); } else { lcd.print(" Off"); } // Данные фена на дисплей lcd.setCursor(0, 1); lcd.print("Fen:"); lcd.setCursor(4, 1); if (digitalRead(pinHotAirButton) == HIGH) { if (hotAirTCouple < 481) { lcd.print(setHotAirTemp); lcd.print("\1"); lcd.setCursor(9, 1); lcd.print(hotAirTCouple); lcd.print("\1"); // Вентилятор фена на дисплей lcd.setCursor(14, 1); lcd.print(displayHotAirCooler); } if (digitalRead(pinGerkon) == LOW && digitalRead(pinHotAirButton) == HIGH) //геркон замкнут, мигаем уст. температурой (ловим по земле) { lcd.print(setHotAirTemp); lcd.print("\1"); lcd.setCursor(9, 1); lcd.print(hotAirTCouple); lcd.print("\1"); lcd.setCursor(14, 1); lcd.print(displayHotAirCooler); delay(150); lcd.setCursor(4, 1); lcd.print(" "); } else { lcd.print(" Warning"); } } //Температура выключенного фена на дисплей до 60 градусов else if (hotAirTCouple > 60 && digitalRead(pinHotAirButton) == LOW && hotAirTCouple < 480) { lcd.print(" Off"); lcd.setCursor(9, 1); lcd.print(hotAirTCouple); lcd.print("\1"); } else{ lcd.print(" Off"); } delay(100); }чтобы работал в ардуино уно и с дисплеем 2004.
Адрес I2C может быть 0х27.
сканер говорит что 0x3f
подправил скетч, если кому не трудно посмотрите на ошибки. скетч проверку проходит. скетч будет для ик паяльной станции.
#include <Wire.h> #include <LiquidCrystal_I2C.h> // Set the LCD address to 0x27 for a 16 chars and 2 line display LiquidCrystal_I2C lcd(0x3f, 20, 4); boolean FAN = true; int pinDownOut = 5; // Выход для нижнего подогрева int pinDownIn = A0; // Потенциометр нижнего подогрева int pinDownTCouple = A3; // Термопара нижнего подогрева int pinDownButton = 2; // Кнопка вкл. и выкл. нижнего подогрева int pinUpOut = 6; // Выход для верхнего подогрева int pinUpIn = A2; // Потенциометр верхнего подогрева int pinUpTCouple = A1; // Термопара верхнего подогрева int pinUpButton = 4; // Кнопка вкл.и выкл. верхнего подогрева int pinGerkon = 7; // Геркон верхнего подогрева 28ая нога int pinRele = 7; //На управление реле(13я нога меги) uint8_t char_cel[8] = { B00111, B00101, B00111, B00000, B00000, B00000, B00000 }; void setup() { pinMode(pinDownOut, OUTPUT); pinMode(pinDownButton, INPUT); pinMode(pinUpOut, OUTPUT); pinMode(pinUpButton, INPUT); pinMode(pinGerkon, INPUT); pinMode(pinRele, OUTPUT); lcd.createChar(1, char_cel); lcd.begin(); // инициализация LCD дисплея lcd.backlight(); // включение подсветки дисплея // Вывод приветствия lcd.setCursor(0, 0); lcd.print(" INFRARED SOLDERING"); lcd.setCursor(0, 1); lcd.print(" STATION"); lcd.setCursor(0, 2); lcd.print(" ver. 0.13"); // задержка delay (3500); lcd.clear(); } void loop() { // Преобразовываем значения int setDownTemp = map(analogRead(pinDownIn), 0, 1023, 0, 480); int DownTCouple = map(analogRead(pinDownTCouple), 0, 750, 0, 480); int setUpTemp = map(analogRead(pinUpIn), 0, 1023, 0, 480); int UpTCouple = map(analogRead(pinUpTCouple), 0, 750, 0, 480); // Защита, если не работает термопара if (DownTCouple > 481) { setDownTemp = 0; } if (UpTCouple > 481) { setUpTemp = 0; } // Поддержка установленной температуры нижнего подогрева if (setDownTemp >= DownTCouple && digitalRead(pinDownButton) == HIGH) { digitalWrite(pinDownOut, LOW); //delay(100); digitalWrite(pinDownOut, HIGH); } else { digitalWrite(pinDownOut, LOW); } //Защита от пробоя симистора/замыкания термопары (замыкаем реле) if (digitalRead(pinUpButton) == HIGH && setUpTemp+100> pinUpTCouple && pinUpTCouple<480){ digitalWrite(pinRele, HIGH); } else { digitalWrite(pinRele, LOW); } // Поддержка установленной температуры верхнего подогрева if (setUpTemp >= UpTCouple && digitalRead(pinUpButton) == HIGH && digitalRead(pinGerkon) == HIGH) { digitalWrite(pinUpOut, HIGH); delay(90); digitalWrite(pinUpOut, LOW); } else { digitalWrite(pinUpOut, LOW); } // Убираем прыганье цифр if ((setDownTemp + 5) > DownTCouple && (setDownTemp - 3) < DownTCouple) { DownTCouple = setDownTemp; } if ((setUpTemp + 15) > UpTCouple && (setUpTemp - 5) < UpTCouple) { UpTCouple = setUpTemp; } // Данные нижнего подогрева на дисплей lcd.clear(); lcd.print("DOWN:"); lcd.setCursor(5, 0); if (digitalRead(pinDownButton) == HIGH) { if (DownTCouple < 480) { lcd.print(setDownTemp); lcd.print("\1"); lcd.setCursor(12, 0); lcd.print(DownTCouple); lcd.print("\1"); } else { lcd.print(" Warning"); } } //Температура выключенного нижнего подогрева на дисплей до 60 градусов else if (DownTCouple > 60 && digitalRead(pinDownButton) == LOW && DownTCouple < 480) { lcd.print(" Off"); lcd.setCursor(12, 0); lcd.print(DownTCouple); lcd.print("\1"); } else { lcd.print(" Off"); } // Данные верхнего подогрева на дисплей lcd.setCursor(0, 1); lcd.print("UP:"); lcd.setCursor(4, 1); if (digitalRead(pinUpButton) == HIGH) { if (UpTCouple < 481) { lcd.print(setUpTemp); lcd.print("\1"); lcd.setCursor(9, 1); lcd.print(UpTCouple); lcd.print("\1"); } else { lcd.print(" Warning"); } } //Температура выключенного верхнего подогрева на дисплей до 60 градусов else if (UpTCouple > 60 && digitalRead(pinUpButton) == LOW && UpTCouple < 480) { lcd.print(" Off"); lcd.setCursor(9, 1); lcd.print(UpTCouple); lcd.print("\1"); } else{ lcd.print(" Off"); } delay(100); }подправил скетч, если кому не трудно посмотрите на ошибки. скетч проверку проходит. скетч будет для ик паяльной станции.
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
сворачивайте код по умолчанию, уважайте других...
понял, исправлюсь.
BT138, IRFZ44N, 7812 (понижаем с 24 в), 7805 (понижаем с 12 в), КТ814 - радиаторы на какие элементы ставить?
7812 кт814
-
понял, исправлюсь.
Для ифк данный алгоритм управления не подойдёт. Как минимум нужно применить фазо импульсное управление с диммером. Читай про ПИД регуляторы.
Для ифк данный алгоритм управления не подойдёт. Как минимум нужно применить фазо импульсное управление с диммером. Читай про ПИД регуляторы.
да ну, с чего бы? полно народу на твердотельных собирают. мне нужен скетч, а уж как все сделать сам разберусь.
ООООО а вот про ФИУ это интересно..., я всю прошлую зиму проискал, так ничего интересного и не нашел.
ООООО а вот про ФИУ это интересно..., я всю прошлую зиму проискал, так ничего интересного и не нашел.
что искал, в соседней теме http://arduino.ru/forum/proekty/ocherednaya-payalnaya-stantsiya
фен управляется ФИУ.
смысл паяльной ифк станции - удобство и надежность. задаешь температуру по профилю и она плавно набирается. И НИ В КОЕМ случае не должна превышать заданое значение - поджаришь плату. недогрев также чреват - плату поведет, при дополнительном догреве вздуется маска из-за длительного нагрева.