Перейти к содержимому
Форум журнала практической электроники «Датагор»

Куча недорогих очков на все вкусы и цвета. Распродажа, конец сезона

Офигенные керамические подшипники FreeSport 608RS для скейта, роликов, самоката

Оригинал микро-ПК Raspberry Pi 3 Model B+ (Broadcom 1.4GHz quad-core 64 bit processor, Wifi, Bluetooth, USB)

Стартовый набор (23 элемента) Raspberry Pi 3 Internet Of Things

USB флэшка 16/32/64 Gb с доп.выходом на OTG под Android

Пластик PLA Joylites для 3D-принтера, 10m 1.75mm, 10 цветов

Набор инжекторов для 3D-принтера 10шт.

Офигенная миниатюрная рация на литии BaoFeng UV-5R, 5W, 5-15 км! Охота, поход, торговый центр и т.п.

Смартфон Original New Nokia 6 Android 7.0 Nougat 4GB 64GB Octo Core

High Quality 2 Channel PCM Voice Telephone Fiber Optical Media Converter With Ethernet FC Single mode 20Km

Автомобильный сканер Bluetooth Auto Scanner OBDII V2.1 для Android, Windows, Symbian

Аудио кабель джек-джек 3,5мм, 1.5 и 3 м

Двухдрайверные наушники MOOJECAL M1, 16 Ohm, 102dB, Super Bass, чехол

Гарнитура с микрофоном MOOJECAL MJ-06, 32 Ohm, 100dB

Футболки с принтами на выбор, T-Shirt

Мультиметр UNI-T UT139A, True RMS, Auto Range

Набор паяльных инструментов в чехле, паяльник 220V 60W с терморегулятором, пинцет и пр.

Паяльнник 80W с терморегулятором и LCD-дисплеем, популярные жала серии 900M
Гость vasek_vasechek

первые шаги программирования микроконтроллеров AVR

Рекомендованные сообщения

Гость vasek_vasechek

литература: Дж. Мортон "микроконтроллеры вводный курс"

программное обеспечение: AVR Studio 5

proteus 7.7

 

суть проблемы:

в какой то степени успешно изучил главу посвященную теории, перешел к практическому программированию и тут завалился,

программа заключается во включении светодиода при помощи кнопки, и первое и второе подключено к МК

если переписывать текст программы из учебника - то все работает, если пойти своим путем - то на выходе от попы уши

вот схема в proteus'e:post-20436-1392894115_thumb.png

 

вот текст программы с комментариями:

;*******************************

;Автор: Vasechek

;Дата:

;Версия:

;Название файла:

;Для AVR: ATtiny2313

;тактовая частота: 8 МГц

;*******************************

 

;выполняемые функции: включение светодиода при нажатии кнопки

 

;*******************************

.def temp=r16 ; присвоение регситру r16 имени temp

ser temp ; установка значения temp в 1

out ddrb, temp; определение порта вкачестве ВЫХодного

ldi temp,0b11111110; оределение

out ddrd,temp; pd0 в качестве ВХодного

clr temp; очистка рабочего регистра

out portb, temp; отключение подтягивающих регистров

out portd, temp; отключение подтягивающих регистров

rjmp check; переход к проверке состояния кнопки

check:; проверка сост кнопки

in temp,pind; запись в temp состояния кнопки

out portb,temp; включение СИД

rjmp check; переход на проверку состяния кнопки

 

 

во время эмуляции при первом нажатии на кнопку СИД загорается и в дальнейшем горит независимо от состояния кнопки,

пытаясь выяснить в чем дело - уже весь мозг сломал :smile: :smile: :smile:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У вас в программе присутствует только код, отвечающий за включение светодиода. А нужно сделать условный оператор. Если светодиод горит, выключить, если не горит, включить.

Прежде чем писать код, нарисуйте алгоритм, не так уж это и долго. Зато всё сразу станет понятно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость vasek_vasechek

это ничего не изменит, вот блок-схема:post-20436-1392919490.png

проблема в том, что данный алгоритм можно программно и в железе реализовать двумя способами:

 

1) на кнопку подать напряжение,

с входного порта - отключить подтягивающий регистр,

СИД к подключить к выходному порту и к "земле"

 

тогда програмно:

мы считываем а) нажата кнопка- напряжение источника подано вх.порт - "1"

б) отжата кнопка - напряжение равно нулю на вх. порте - "0"

затем перезаписываем через рабочий регистр temp значение порта D в порт B при помощи команд pinD & out

таким образом в случае а) на выход подается логическая "1"=напряжению высокого уровня => СИД должен загореться

б) на выход подается логический "0" = нулевому напряжению => СИД должен погаснуть

на самом деле - он до нажатия - не горит как ему и положено

после нажатия - загорается

как отпускаешь кнопку - ПРОДОЛЖАЕТ ГОРЕТЬ!!!

2) кнопка подключается к земле

на входной порт - подключается подтягивающий регистр

СИД подключается к шине питания и выходному порту

 

в этом случае: а)нажата кнопка- снимается напряжение с вх.порта - устанавливается тем самым "0"

б) отжата кнопка - напряжение соответствует напряжению подтягивающего регистрана вх. порта - т.е. "1"

 

затем проделываем те же самые операции что и в первом случае

в итоге - нажата кнопка - горит СИД

отпустили кнопку - погас СИД

вот схема и код программы по второму варианту(как в учебнике)

post-20436-1392921582_thumb.png

 

.def temp=r16 ; присвоение регситру r16 имени temp

ser temp ; установка значения temp в 1

out ddrb, temp; определение порта вкачестве ВЫХодного

ldi temp,0b11111110; оределение

out ddrd,temp; pd0 в качестве ВХодного

clr temp; очистка рабочего регистра

out portb, temp; отключение подтягивающих регистров

ldi temp,0b00000001; подключение

out portd, temp; подтягивающего регистра в порт pb0

rjmp check; переход к проверке состояния кнопки

check:; проверка сост кнопки

in temp,pind; запись в temp состояния кнопки

out portb,temp; включение СИД

rjmp check; переход на проверку состяния кнопки

 

НУ ПОЧЕМУ 2 ВАРИАНТ РАБОТАЕТ, А 1 (МОЙ) НЕТ???? :smile:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

во-первых схема:

а) нажата кнопка- напряжение источника подано вх.порт - "1"

б) отжата кнопка - напряжение равно нулю на вх. порте - "0"

У вас в симуляции кнопка подключена на землю, всё работает наоборот. Нажатие даёт ноль, отпускаем - единица.

 

Далее:

clr temp; очистка рабочего регистра
out portb, temp; отключение подтягивающих [b]резисторов[/b]
out portd, temp; отключение подтягивающих [b]резисторов[/b]

подтягивающий регистр? что за бред?

Мы очищаем ячейку temp(r16), в ней оказывается 0b00000000, и ничего туда не перезаписываем.

Следующими двумя строчками все резисторы портов B И D отключены! А на PD0 должен быть подтягивающий резистор, иначе его состояние не определено. Достаточно подать на этот вход разок ноль, так он там и останется (по крайней мере в симуляторе)

 

Как этот участок выглядит в работающий программе:

clr temp; очистка рабочего регистра
out portb, temp; отключение подтягивающих резисторов
ldi temp,0b00000001; подключение
out portd, temp; подтягивающего резистора в порт pb0

вот тут резистор включается как надо.

 

Кстати, отключаемые/подключаемые резисторы у атмель полная фигня имеют очень большой номинал, так что желательно на входах использовать внешние резисторы

Попробуйте не меняя программу добавить в протеусе отдельный подтягивающий резистор, должно всё заработать.

Изменено пользователем yamazaki

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость vasek_vasechek

схема, приведенная в первом моем сообщении соответствует первому моему случаю(который не работает)

 

2 схема приведенная во втором сообщении соответствует второму случаю (под цифрой 2)

 

так что в плане подключения я считаю что все правильно:

1) снимается 1 со входа - перезаписывается на выход и уходит через диод на землю

2) снимается 0 со входа - перезаписывается на выход и убирает 1 с выхода, т. о. ток течет из + через диод в МК

 

 

 

Добавлено после раздумий:

все наконец получилось!!!

да, согласен подтягивающие резисторы называл регистрами - это косяк, невнимательно читал литературу, но не в них было дело вот две схемы:

 

 

1)post-20436-1392970034_thumb.png - это мой первоначальный вариант - который не работал

 

2) post-20436-1392970235_thumb.png -здесь входной порт выведен на землю через резистор, тем самым снимая установленную "1" во входной порт D

 

текст программы оставил без изменений:

 

.def temp=r16 ; присвоение регситру r16 имени temp
ser temp ; установка значения temp в 1
out ddrb, temp; определение порта вкачестве ВЫХодного
ldi temp,0b11111110; оределение
out ddrd,temp;       pd0 в качестве ВХодного 
clr temp; очистка рабочего регистра
out portb, temp; отключение подтягивающих резисторов
out portd, temp; отключение подтягивающих резисторов
rjmp check; переход к проверке состояния кнопки
check:; проверка сост кнопки
in temp,pind; запись в temp состояния кнопки
out portb,temp; включение СИД
rjmp check; переход на проверку состяния кнопки

 

хочу еще отметить что попытка снять "1" с pd0 программно (а не резистором) результата не дала

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Встроенные резисторы подтягивают всегда к Vcc, т.к. они "pullup"

Соответственно, кнопка должна подключаться на землю.

 

Можно сделать чтобы кнопка подключала вход к Vcc, но тогда подтягивающий резистор на землю должен быть внешний.

Изменено пользователем yamazaki

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

  • Форум законсервирован 💬

    Я законсервировал форум. Дальше общаемся в обычном режиме на основном сайте Журнала. Новая тема = новая статья, посты = комментарии.

    Игорь

  • Сообщения

    • Спасибо за инфо.  Собрал некоторые комплектующие.   В выходние хотел начать делать для себя станок для намотки выходных трансформаторов моего лампового проекта.    Не могли бы выложить на этот форум печатную плату. Хотел сделать через технологию  ЛУТ.
    • А я вот нашёл в полученном наборе для творчества - EF86, ECC83, ECC808, ECH81. tunsgram-ы. Где бы теперь корпусок взять?
    • На стабилизаторе был перекос 0,3В, быстро убрал его и фона больше нет. Что это было?, - ток компенсации? В любом случае, спасибо за совет.
    • общее для них  -  стабилизатор  +/--31 при включении попытаться успеть измерить эти  +/--31
    • Спасибо за ответы! Проверю - отпишусь.
    • Это я к тому клоню, что усилитель может быть неисправным, раз динамики сгорели. Можно и новые так же спалить. Желательно проверить работоспособность усилителя. Сначала без нагрузки. Померить, нет ли постоянного напряжения на выходе. А потом нагрузить резистором, или лампочкой. Или последовательно с новыми динамиками включить резистор на 50-100 ом для ограничения тока.
    • Фон 50Гц(100Гц) даже при максимальном ослаблении регулятора громкости и сразу в обоих каналах. Включение регулятора тембров, фильтра 9 кГц, режима "Моно" не влияет на процесс. Могу сделать вывод, что причина в предусилителе, но тогда не понятно почему через минуту всё резко прекращается, ведь основные переходные процессы идут в усилителях мощности (термостабилизация, смещение и т.д). Заземление так же не вносит изменений. 
    • Дмитрий, посмотрел в своих закромах родины. Нашел пару штук динамиков от аналогичных Микролабовских колонок. Динамики из ЗИПа (приходили с представительства Микролаба для ремонта гарантиных колонок). На динамиках написано 4 Ома 16W. Размер 78мм те самые 3дюйма. Если интересует в личку давай адрес. С тебя только за пересылку.
    • я сначала тоже так думал, долго проверял плату, потом подсоединил сабвуфер на место колонок (если недолго и негромко должно быть без последствий) и звук был. Ставил динамики на место буфер - звука нету.   динамики разобрал до "самих динамиков" т. е. вынул из корпуса, и соответственно проверил. Проверял тестером прозвонкой - нет контакта. Проверял батарейкой, при замыкании, мембрана дёргаться должна. На сабвуфере всё звонится, дергается и как уже говорил - поёт (басами). Сами динамики вынутые из деревянного корпуса внимательно осмотрел, доступные провода проверил, прозвонил видимого обрыва нету.   Как еще проверять? Думаю тут уже все понятно с усилителем. Или нет?
    • Что-то не верится, что плата цела, а сателлиты сгорели. Чаще сгорает усилитель, или то и другое одновременно. Точно в самих динамиках обрыв? Может быть, в подводящих проводах?  
    • нет инфы мало , фон понятие у всех разное, у меня это 50гц (100гц) в обоих каналах или в одном? в каких положениях органов управления?  нужно искать источник этого явления например полностью отключить пред а вообще похоже на непропай или возбуд гадать можно долго, неисправность  мерзкая, на поиск дается одна минута 🙂
    • Заметил одну очень интересную вещь - когда усилитель прогревается в колонках слышен фон, через примерно 1 минуту он резко исчезает. Я понимаю, что это переходные процессы, но так должно быть? Токи покоя и ноль при этом у меня выставлены.
    • Что по мощности, сопротивлению динамиков?   И я так понял важен частотный диапазон. Но с этим чувствуется будет сложно, учитывая что даже на родных динамиках ватты, оммы не написаны...     Цена за 2 шт.   Динамики ydn78-1 нашёл за 100 руб. но они 5 Вт думаю маловато будет, не выдержат. + доставка дороже самих динамиков... пустая трата времени, денег...      
    • 1000 рублей за динамик? Не дороговато ли будет для таких колонок. К тому же я не уверен что эти динамики отыграют по высоким частотам до 20кГц. На вид это типичные НЧ/СЧ с диапазоном в пределах 100Гц - 8-10кГц. Поищи в Гугле динамики с маркировкой ydn78-1 - они практически аналогичны по виду и размеру тем, которые продаются на Али, но при этом в 10 раз дешевле. Если не понравятся по звуку, то не жалко будет потраченных денег.    
    • Здравствуйте.   Сразу скажу я в радиотехнике новичок, но любопытный и даже упорный 😀.   В данном случае нужны рекомендации.   Есть акустика Sven MS-915. Характеристики. http://all-specs.net/model/7931/ После долгих разбирательств выяснилось что неисправны сами 2 динамика (болтиков нету, не сразу понял как их разобрать). Сабвуфер цел, плата цела. Нужно найти динамики на замену. Заявленная мощность 2x8+10 Вт, т.е. динамики по 8 Вт. Размер динамиков по диагонали 78 мм. Динамики 8 Вт 8 Ом 78 мм я нигде не нашёл. Самое близкое это 10 Вт 4 Ом 78 мм здесь. https://ru.aliexpress.com/item/2pcs-3inch-4ohm-10W-78mm-gold-foam-edge-black-magnetic-multimedia-speaker/32581348021.html И, кроме того я не уверен 8 Ом, 4 Ом или можно оба варианта. Подскажите пожалуйста где правильный ориентир?  
    • Вопрос снимается, я разобрался в чём дело - тот, кто чинил этот аппарат до меня, перепутал местами транзисторы VT8 и VT9. Всё оказалось крайне банально. Когда проверял транзисторы на целостность, даже мысли не было, что можно их перепутать.
    • Немного тему перепутал, нужно было в "Ремонте усилителей" создавать.
    • Падение напряжения на R17 - 0,83В. Прикрепляю картинку с напряжениями. На базах выходных транзистров напряжение просажено до +0,29 -0,22  
    • ну очень похоже на https://forum.datagor.ru/topic/11644-remont-usilitelya-elektronika-50u-017s/?tab=comments#comment-162309 поэтому и совет тот же, измерить падение напряжения на R17 - должно быть 0,7в если напряжение в норме, то выложите напряжения на базах (всех шести) транзисторов выходного каскада  
    • Здравствуйте. Достался мне усилитель Амфитон-У-002, как оказалось, после неудачной и неумелой починки. Провёл профилактику - почистил, заменил ёмкости, обновил термопасту на радиаторах.  Отстроил плечи +31В и -31В для предварительного усилителя и блока тембров. Запустил блок защиты.  Один канал усилителя работает отлично, а со вторым беда. Транзисторы VT4, VT6, VT7, VT11 и VT13 - были пробиты. Резисторы R8 и R18 почернели. Заменил неисправную элементную базу и уже второй день кручусь вокруг проблемы ограничения верхней полуволны на низких частотах при положении регулятора начиная от - 10dB  в точке указанной на фото (от неё и дальше по цепи). Питающие напряжения в полном порядке. Все резисторы и ёмкости проверены. Подобрал дифкаскад VT2, VT4 по коэффициенту усиления, толку не дало.   Проследите пожалуйста за мною моё понимание работы схемы: VT2, VT4 - дифкаскад, R5 - установка нуля. VT3 - источник тока. VT1 - включен как диод, C3 - гасит ВЧ пульсации. С коллектора VT2 сигнал поступает на эмиттерный повторитель на VT5. Далее на базу VT7 с обратной связью по току. Положительная полуволна усиливается VT10, VT12, VT3, а отрицательная VT11, VT13, VT4. С усилительной частью всё, остаётся термостабилизация на VT1(315Г) и защиа от перегрузки на VT8, VT9. VT14, VT15 - запирают транзистор в цепи реле на плате защиты.   Верно ли я понимаю принцип работы схемы? Не понятно для чего цепочка, собранная на VT6?   Меня смущают несколько заниженные напряжения на транзисторах (красным на схеме).  У транзистора VT3 коэффициент усиления всего 19 (как показал китайский тестор).  Мои мысли в данном случае только отпаять выходные транзисторы и посмотреть изменится ли выход дифкаскада (в чём я очень сомневаюсь).  Больше мыслей нет. Прошу Вас подсказать в каком направлении двигаться.   P.S. Коэффициенты усиления пар транзисторов VT5 VT7 - VT11 VT13 - VT10 12 как и оконечников не подбирал.
    • Идиотизм !!!  Не верьте маркетологам..., наша 6Н2П  (а если с ЕП) вполне приличная лампа (обычная, какой и должна быть...), всё остальное - БРЕД СУМАСШЕДШЕГО !!! Для дураков...
    • На Али вообще не нашел ни ЕСС808, ни 6КХ8.
    • Ну, что тут скажешь  "За неимением гербовой пишут и на простой".  Это уже перебор,  цена AEX- 650 в районе 100.  
    • Я как-то держал в руках ECC808, купленную на AliExpress. Помню на удивление блестящий анод, явно не подвергавшийся отжигу в водороде, и отсутствие даже намёка на бариевый поглотитель на стекле колбы. Ставилась на замену старенькой, с сгоревшим накалом, ECC808 производства то ли TUNGSRAM, то ли TELEFUNKEN, точно не помню, у которой эти внешние половые признаки присутствовали. Лампа тогда заработала, но дальнейшую её судьбу не знаю.
    • Да, цены кусаются, наверное весь металл в адаптере "платина" и собран по "новым технологиям" (что же там такое внутри)  
︽ Наверх страницы ︽
×