Jump to content

Anonim

Members
  • Content Count

    34
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Anonim

  • Rank
    Новенький

Электроника

  • Стаж в электронике
    1-2 года
  • Сфера радиоэлектроники
    Микроконтроллеры
  1. 2.0.7.1, конечно не лицензия... Но до этого нареканий не было
  2. Александр, спасибо, пока самый толковый ответ! 1) Алгоритм: Стартуем шину I2C Обращаемся к термометру Считываем тмпературу Записываем ее в временый регистр Останавливаем I2C Потом обрабатываем значение что бы получит температуру в градусах Цельсия, как написано в описании датчика. Этот кусок пока не написан. Полученое число разбиваем на 3 отдельных (еденицы десятки сотни) для динамической индикации в прерывании. Начинаем сначала основной цикл. Вроде ничего сложного... 2)Так и делаю. Сначала написал динамическую индикацию, теперь пытаюсь с датчиком связаться. 3)Спасибо, завтра зерегаюсь там. 4) СПАСИБО!!! 5) Не могу найти про это справке. Ткните носм пожалуйста... На &H11 пишет тоже самое... 5) 0x01 это выходит просто 1 в десятичном виде... Тоже самое...
  3. Ну, это тема для хорошей отдельной дисскусии. Мне бейсик нравиться своей простой, да и привык как то. Хотя может это и не совсем правильно. Сейчас вопрос один: как правильно указать адрес регистра который считывем, в каком виде? Нужно просто считать Temp из этой таблицы, . Это должно происходить в строчке выделенной жирным. Что я там только не пробовал писать! И 00h (адрес из таблицы 1 как я понял), и 0x00, и &H00, и Temp - на все ответ один - ошибка unknown definition. Подозреваю что чего то очень сильно не понимаю в формате записи адреса, просвятите пожалуста. , Config Sda = Portc.4 Config Scl = Portc.5 I2cinit Const Lm75rd = &B10011111 'Sensor read (ïîñëåäíÿÿ 1 - ðåæèì ÷òåíèå) I2cstart I2cwbyte Lm75rd Waitms 25 Do Value_out = 123 I2cstart I2cwbyte Lm75rd [b]I2crbyte 00h [/b] 'ÐÀÇÎÁÐÀÒÜÑß Ñ ÔÎÐÌÀÒÎÌ ' 'ïî èäåå òóò ñ÷èòàëè òåìïåðàòóðó I2cstart I2cwbyte Lm75rd I2crbyte Value_out , Ack 'So you'll have to read twice... first the ,5 I2crbyte Value_out , Nack 'And then the 12... we don't store the ,5 I2cstop Digit_temp = Value_out ' ðàçäåëåíèå èçìåðåííîãî çíà÷åíèÿ íà ñîñòàâíûå ÷àñòè One = Digit_temp Mod 10 ' åäèíèöû Digit_temp = Digit_temp - One Digit_temp = Digit_temp / 10 Ten = Digit_temp Mod 10 ' äåñÿòêè Digit_temp = Digit_temp - Ten Digit_temp = Digit_temp / 10 Hundred = Digit_temp Mod 10 ' ñîòíè Value_out = 0 Loop
  4. Я хочу считать температуру из датчика командой(00h - указано в описании, в англ. примере все команды в виде &H** I2crbyte &H00 А среда разработки пишет unknown definition на это. Как потом записать в переменную разобрался. Насчет Си - для ПК изучаю Яву, а для контроллеров нравиться баском из того что есть на данный момент актуального. К Си не лежит душа, для контроллеров слишком большой и громоздкий, а на ПК ява больше нравиться и более перспективна
  5. Всем доброго времени суток. Захотел сделать термометр на Atmega8 и цифровом датчике LM75a(DS1621 полный аналог, но есть в Proteus). В качестве языка програмирования использую BASCOM. среда разработки BASCOM-AVR. Нашел русское описание на LM75а, инструкцию на русском и на английском по работе с I2C шиной в BASCOM. По отдельности вроде все понятно, но пытаюсь написать програму - ничего путного не выходит. Хочу использовать аппаратную реализацию шины. Пока все что смог сделать, кроме тела для динамической индикации(тут проблем нет, чать кода связаную с индикацией не публикую, мне бы со связью разобраться) Dim I2ctemp As Byte 'Storage for the temperature I2cinit Config I2cdelay = 10 Do I2cstart I2cwbyte &1001111 'Это адрес устройства I2crbyte & , Ack 'Тут будем читать байты I2crbyte Databyte_to_read , Nack 'Тут прочтем последний I2cstop Loop Вопросы: 1)Как правильно указать какой байт и бит читать? 20Как считаное значение запихать в переменную I2ctemp? Для начала что бы проще было, можно даже без дробной части получать температуру, только 1 байт считывать. Заранее спасибо за ответы и помощь, буду очень блпгодарен всем откликнувшимся.
  6. Код вообще не мой, а с http://avrprojects.info/avr-projects/digital-dimmer-using-atmega8/, и немного поправленный для себя. Питание схемы и детектора нуля отдельное. В прошивке немно изменен принцип управления: если в оригинале мы от импульса пересечения 0 отсчитываем нужное время, и потом открываем тиристор, то у меня сделано наоброт - мы сначала открываем тиристор, держим его включеным сколько надо и потом убираем напряжение с управляющего вывода. Таймеры для этого использовать не хочу, у меня на них есть другие планы в будущем.
  7. Всем здравствуйте! Мелочный вопрос, что бы не создавать тему, напишу тут. Сломался штекер зарядного устройства от планшета acer a210. Внешний диаметр 3мм, длина около 10мм. Не могу найти такой ни в одном из интернет магазинов Украины. Или не то ищу(не правильно называю), или не там. Подскажите пожалуйста, где можно купить такой в интернете?
  8. Спасибо за ответы. Фото плат и схему прилагаю. Да, Return возврат из INT0. Оптопара - 4N25. В протеусе все отрабатывает правильно, дело не в прошивке. Тут именно аппаратная проблема, абсолютно не понятная. На схеме и плате есть "лишние" элементы, они не используются сейчас вообще. h
  9. Всем здравствуйте! Есть атмега8, 2 кнопки, детектор пересечения нуля, и лампа включенная через оптопару. Задача - кнопками плавно регулировать яркость лампы. Происходит какой то бред. При включении лампа загорается на максимальную яркость и не регулируется. Попробовал отключить детектор пересечения 0 (по логике, лампа просто не сможет загореться, т.к. контролер не получил прерывание.). При включении схемы лампа не горит, но стоит провести рукой в паре сантиметров от поверхности платы - лампы загораются и не поддаются управлению. Т.е. микроконтроллер возбуждается от фона. Чем это может быть вызвано и как с этим бороться? Первый раз с таким сталкиваюсь... Прошивка на баскомАВР: $regfile = "m8def.dat" 'âûáèðàåì êîíòðîëëåð $crystal = 4000000 'âûáèðàåì ÷àñòîòó êâàðöà Dim Level As Byte Dim Del As Byte Ddrd.4 = 1 ' îïðåäåëèì íàïðàâëåíèå ïîðòà äëÿ òèðèñòîðà Portc.2 = 0 ' îïðåäåëèì íàïðàâëåíèå ïîðòà äëÿ êíîïêè 2 íà âõîä Portc.3 = 0 ' îïðåäåëèì íàïðàâëåíèå ïîðòà äëÿ êíîïêè 1 íà âõîä Portd.5 = 0 Portd.6 = 0 Portc.3 = 1 ' âêëþ÷èì âíóòðåííèé ïîäòÿãèâàþùèé ðåçèñòîð äëÿ êíîïêè 2 Portc.2 = 1 ' âêëþ÷èì âíóòðåííèé ïîäòÿãèâàþùèé ðåçèñòîð äëÿ êíîïêè 1 Portd.5 = 1 Portd.6 = 1 Switch1 Alias Pinc.2 ' îáçàâ¸ì âõîä êíîïêè - êíîïêîé Switch2 Alias Pinc.3 ' îáçàâ¸ì âõîä êíîïêè 2 - êíîïêîé 2 Switch3 Alias Pind.5 ' îáçàâ¸ì âõîä êíîïêè - êíîïêîé Switch4 Alias Pind.6 ' îáçàâ¸ì âõîä êíîïêè 2 - êíîïêîé 2 Triac Alias Portd.4 ' Òðèñòîð Lck Alias Portc.5 ' Ñâåòîäèîä - Çàêðûòî(ïðè ïåðåãðóçêå è áëîêèðîâêå ãîðèò) Mode_ind Alias Portc.4 ' Ñâåòîäèîä - Ðåæèì Config Int0 = Rising On Int0 Int0_int ' Initialise the INT0 Interrupt Enable Int0 Enable Interrupts ' âêëþ÷èì ïðåðûâàíèÿ Sw_byte = 0 Triac = 0 Do '*-*-*-*Íà÷àëî îñíîâíîãî öèêëà*-*-*-* If Switch3 = 0 Then If Level > 0 Then Decr Level Waitms 100 End If If Switch4 = 0 Then If Level < 9 Then Incr Level Waitms 100 End If Loop '*-*-*-* âîçâðàò â îñíîâíîé öèêë*-*-*-* Int0_int: Triac = 0 For Del = 0 To Level Waitus 900 Next Del Triac = 1 Return End ' *-*-*-*çàâåðøàåì ïðîãðàììó
  10. Всем здравствуйте! Был у меня такой програматор, отлично работал, потом потерялся. Сейчас решил сделать заново. Сделал плату, распаял, а он не работает, пишет "-24 Устройство неизвестно или повреждено". Плату и монтаж несколько раз проверил, ошибок нет (не совсем новичек все таки). Контроллер Atmega 8, новый. Как устранить проблему?
  11. Да, это я про тупил конкретно. Тогда буду делать схему из 3го поста, она то точно заработает, не работать там просто нечему. Как соберу - отпишусь. Спасибо за схему и ответы!
  12. Читал. Одного полупериода мне как раз хватит, т.к. у меня собран управляемый выпрямитель из двух тиристоров, у него на выходе один полупериод и есть. Так что этой схемы вполне хватит что бы определить пересечение нуля и сделать фазовое регулирование. По поводу стабилитрона вместо стабилизатора - а чем это плохо? Работает не хуже, цена одинаковая примерно. + 7805 почти всегда есть у всех под рукой, а стабилитроны не всегда. Так что в этом я минуса не вижу.
  13. Спасибо большое за схемы конечно, но схема из 1го поста уже собрана на плате, поэтому хотелось бы запустить ее, ибо плату переделывать неохота.
  14. Всем доброго времени! Понадобился мне детектор перехода через ноль, для использования его с МК. Для стабильности решил делать его на компараторе. Выбрал вот эту схему http://www.rlocman.ru/shem/schematics.html?di=78000 . Однако в статье и на схеме не указано питание. Открыв даташит, я увидел, что компаратору трубется двуполярное питание -15/+15 В, но он может работать и от +5 В(так же я нашел в интернете несколько схем, где он питался от + 5 В). Двуполярного питания в схеме не было, и что бы не усложнять её, я решил использовать питание +5В. Сейчас все собрано как на схеме, 6 и 3 выводы на земле, 11 на +5 В. Однако при запуске компаратор молчит и не подает признаков жизни. В чем может быть ошибка и как правильно его питать? Даташит: http://www.ti.com/lit/ds/symlink/lm119.pdf Примеры схем с питанием +5 В: http://www.go-gddq.com/html/DYaBiJiaoDL/2010-10/27755.htm http://share.pdfonline.com/4696666f2a784ed8ae1dbcb987e9bbde/Remote%20Control%20for%20Home%20Appliances.htm Буду очень благодарен тому, кто поможет! Заранее спасибо!
  15. Сейчас нарисовал более читабельную версию схемы + мелкие поправки. Сейчас когда коллектор транзистора(1) подключен к + на выходе(2), на выходе(2) порядка 13В. все значки земля соединены. Когда коллектор транзистора(1) подключен к +5В(питание МК от ЛБП), на выходе(2) порядка 10В. Решится ли это использованием ШИМ
×
×
  • Create New...