|
-
-
Попробуй вот так:
TimePause=0
i=0
main:
for i = 0 to TimePause
Button but1,0,255,255,buf1,1,speedDw
Button but2,0,255,255,buf2,1,SpeedUp
delayms 200
next i
toggle led
goto main
SpeedDw:
timepause = TimePause + 1
if TimePause > 10 then TimePause = 10
i=0
gomo main
SpeedUp:
timepause = TimePause - 1
if TimePause > 10 then TimePause = 0
i=0
gomo main
В твоей программе при нажатии кнопки происходит переход на указанную метку (команда buttun так устроена). В данном случае на метку SpeedUp или SpeedDw. Эти подпрограммы должны заканчиваться безусловным переходом, а конкретно командой goto. Но у тебя они заканчиваются командой возврата (return). Но так как в эту подпрограмму после нажатия кнопок попадаем по goto, return не знает кто вызвал подпрограмму и естественно не знает куда надо вернуться! Поэтому и зависает. Протеус должен кучу ошибок сыпать.
Цепочка gosub -> goto -> return не должна работать, она и не работает.
-
Попробуй сначала помогать всеми выводами
TRISA=%00000000
TRISB=%00000000
ALL_DIGITAL true
main:
PortA=255
PortB=255
Delayms 200
PortA=0
PortB=0
Delayms 200
Goto main
Если все выводы моргают, значит они настроены как цифровые. Потом меняй регистры: TRISA=%11111111 TRISB=%11111110 и вставляй свой код.
-
Если программа компилируется без ошибок, значит в ней ошибок нет.
Конфигурации микроконтроллера в самом начале программы не видно? config ???
Регистры TRIS правильно настроены?
Строчки Device = 16Fххх ?
Попробуй перед main добавить: ALL_DIGITAL true
Для того, что бы все выводы портов стали цифровыми.
-
Там мизерная индуктивность
-
Когда я собирал шокеры, мне попадались китайские транзисторы IRFZ44, с которыми шокер работал, но на выходе была хилая дуга. При этом транзисторы не грелись. Я всё перепроверил. Заменив транзисторы на такие же, но купленные в другом магазине, шокер заработал как надо. Возможно и у тебя так же.
Тут вся схема - 3 детали.
-
Там огромный зазор. Такой огромный и не нужен. Достаточно 0,1-0,2мм.
Можно взять две одинаковые половинки и в центре положить кусок бумаги.
-
Трансформатор проверял, как я выше писал? Есть искра? Обмотки правильно сфазированы?
-
Схема однотактная, и для того, что бы сердечник не входил в насыщение, а обмотки не превращались в перемычки, в сердечнике делают немагнитный зазор.
Попробуй поднять напряжение до 7-8В.
Скорее всего транзистору просто не хватает напряжения для открытия.
-
В этой схему IRFZ44 может и не работать, ему большее напряжение требуется.
Лучше IRL3705 поставить. Или подобный, с логическим уровнем на затворе.
Можно с материнок наковырять, там таких полно.
-
Дак там в схеме резистор на 100 Ом. Вообще, лучше подстрочный установить, и настроить так, чтобы нормальная дуга была, и при этом жрало немного. Такой компромисс выбрать.
Обмотки правильно с фазировали?
Собранный трансформатор проверяется так:
- Концы высоковольтных проводов расположить так, что бы между ними был небольшой зазор 1-2мм;
- Один конец первичной обмотки трансформатора подключить к источнику тока, аккумулятору. Вторым концом чиркаете по второму выводу источника тока. В этот момент во вторичной обмотке должно появлятся высокое напряжение и в зазоре проскакивать искра.
Таким образом подключаем половинки первички по очереди, потом соединяем обмотки последовательно, а к источнику тока подключаем крайние концы обмоток. Соединённые выводы не трогаем, они висят при этом в воздухе.
Если обмотки правильно сфазированы, то на выходе так же будет проскакивать искра. Если сфазированы неправильно, то искр не будет, и в схеме трансформатор работать не будет.
Мало от краёв отступили, может между слоями пробить.
-
Приеду с вахты, посмотрю.
-
Конденсаторы С1 и С2 исправны? При старте под нагрузкой возможен бросок тока, входное напряжение проседает ниже порогового и ШИМ уходит в защиту.
Попробуй замени их или параллельно подоткнуть ёмкость.
-
Детали можно импортные подобрать.
-
Предлагаю собрать другую схему.
По проще, схема на КТ117 транзисторе.
-
Самое простое, это подключить 5 последовательно соединённых термистора на 100к. Получатся те же 500к.
Термистор должен быть с отрицательным ТКС. То есть при нагреве сопровождение должно уменьшаться.
-
В принципе, эту строчку можно просто удалить. И скомпилировать без битов конфигурации. А при прошивке в программе выбрать настройку тактового генератора, включить нужные биты и прошить микроконтроллер.
Есть сайты с онлайн расчетом слова конфигурации для pic контроллеров.
Например в pickit биты не выставить, но конфигурационное слово вписать можно.
Для образца конфигурации контроллера лучше в папке pbp поискать файлы, их названия соответствуют марками pic контроллеров, и они легко ищутся поисковиком. Открываются просты блокнотом.
Конфигурация в pbp3 немного отличается от pbp2.6 отличия незначительные.
-
У каждой железки есть свой даташит, в котором подробно описано как с ней работать. Датчики DHT-11 и DHT-22 не исключение. В архиве программа на PicBasic Pro, которая автоматически распознаёт тип датчика (DHT-11 или DHT-22), и выводит с него на индикатор температуру и влажность.
Микроконтроллер работает с кварцем 10мГц! Для другой частоты нужно подбирать переменные, но это довольно просто.
DHT-11.zip
-
А если кусок схемы разрисовать? Куда эти детали подключены?
Возможно обычные MOSFET. Погляди тут.
-
А если кусок схемы разрисовать? Куда эти детали подключены?
Возможно обычные MOSFET.
-
Проект на 676 может и интересен, но для начала лучше попробовать тоже самое на микроконтроллере с большим количеством портов, что бы не извращаться с кодом.
Когда всё получиться, пытаться впихнуть в 676.
Ds18b20 при 12 битном преобразовании тратить 750мс времени! При динамической индикации, во время ожидания ответа от этого датчика, индикатор будет выключен.
Поэтому датчик лучше опрашивать раз в 5-10 секунд. А то и реже. Если что то массивное нагревать, скорость нагрева не велика, и нечего его опрашивать каждую секунду.
Опрос датчика можно повесить на TIMER1. Его можно настроить на прерывание раз в 1-2 секунды.
Кнопки лучше опрашивать в главном цикле.
Мой протэус как то не хочет переваривать кнопки параллельно индикатору, начинает жутко тормозить и зависать. Надо попробовать свежее. Хотя я раньше делал такое устройство, и в протэусе все работало хорошо.
На Али есть светодиодные индикаторы с последовательным вводом на 74HC595.
https://a.aliexpress.com/_AWG5OJ
Для управления 2,3,4,8,16 индикаторами требуется всего 3 порта микроконтроллера! Индикация тоже динамическая, но портов нужно в разы меньше.
Программа вывода информации ничуть не сложнее.
DHT22 очень похож на DHT11, и код подходит. Примеров валом в интернете.
Лично я не пробовал. У них точность ниже, и как то мне они не зашли.
-
Из-за нехватки ног у 676 микроконтроллера, в этом проекте 3 его порта используются как выходы для отображения информации на индикаторе, и как входы для опроса кнопок и датчика температуры.
Дело конечно не хитрое, передёргивать регистры TRIS. Но если термостат разрабатывается с нуля, я бы не экономил на выводах мк, и установил бы 18 ногой.
Но для обучения можно подзаморлчиться и написать программу.
-
А с чем связано применение 676 микроконтроллера? У него и ног меньше, и памяти, например чем у 628?
Достоинство 676 - это наличие у него АЦП. Но это достоинство в термостате не применяется.
В данном проэкте можно обойтись и без прерываний.
-
У меня протеус версии 8.3. Проекты из посвежее он не открывает. Да и прошивки к проекту нет.
Лучше картинку из проекта выложи, что бы я собрать смог. Ну и листинг программы не помешает.
-
Первая же ссылка в гугле выдала даташит для 629/675 пика на русском языке http://kazus.ru/nuke/pic/parts/PIC12F629_675.pdf
На 676 тоже легко ищется https://www.radioradar.net/hand_book/documentation/pic16f676_pic16f630.html
|
|