filter91

Members
  • Публикации

    26
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

О filter91

  • Звание
    Новенький

Информация

  • Город
    Братск

Электроника

  • Стаж в электронике
    3-5 лет
  • Сфера радиоэлектроники
    Иркутская
  • Оборудование
    Паяльная станция, осциллограф, паяльники
  1. LCD 1602

    Добрый день, Уважаемые. Прошу Вас помочь разобраться в ситуации, а именно: Подключил китайский LCD 1602 (HD44780) к Atmega16. Дисплей всё исправно отображает, но после нескольких часов работы он начинает отображать, простите меня, кракозябры, иероглифы и т.д. Проблема решается перезагрузкой устройства. До вчерашнего дня думал, что это дисплей неисправный. Собрал совершенно другое устройство на Atmega8 с таким же дисплеем. Всё работает, но опять появилась ситуация как в случае выше - некорректное отображение информации через некоторый период времени. Решается так же перезагрузкой. Хочу добавить, что оба устройства продолжают выполнять свои функции, но корректное отображение пропадает. В проектах использовал библиотеку во вложении. Может быть в неё проблема. В итоге я сделал вывод, что что-то делаю неправильно, раз уже второе устройство с разными МК ведёт себя одинаково. В чём может быть моя ошибка? Заранее спасибо Вам за помощь. lcd_lib.c lcd_lib.h
  2. Конструктор - RGB сердце

    Добрый день. Можете отправить pdf файл, который со схемами для данного конструктора. Во время пайки оторвалась площадка вывода 1 от контроллера. Теперь не знаю, с чем её соединить. Заранее спасибо Схему нашёл. Первая ножка никуда не идёт. Другая проблема, что схема как бы зависает. В чём может быть проблема?
  3. MT-16S2D-2YLG

    Добрый день. Я накидал на СИ процесс инициализации данного дисплея. Прошу Вас проверить и/или дать замечания. Так же прилагаю процедуру записи команд и данных (взятые с HD44780). Помогите пожалуйста их изменить под данный тип дисплея. Не охото у буржуев покупать WH1602. Поддерживаю Российского производителя. Дисплей подключен к порту D (MK Atmega16A - 16MHz): 0 - А0 1 - - 2 - Е 3 - - 4 - DB4 5 - DB5 6 - DB6 7 - DB7 # define F_CPU 16000000UL #include <avr/io.h> #include <avr/pgmspace.h> #include <util/delay.h> #include <stdio.h> #include "lcd_lib.h" // Инициализация дисплея void LCDinit(void) { DDRD = 0xFF; PORTD=0x00; _delay_ms(20); //При необходимости настроить здесь шину данных на вывод PORTD=0x03; //Установка типа интерфейса (8 бит) (0x03 - старший полубайт команды 0x30) - в начале ВСЕГДА переключаем индикатор в 8-ми битный режим работы _delay_us(40); //Это время предустановки адреса (tAS) PORTD |= (1<<PD2); //установка Е=1 _delay_us(40); //Время предустановки данных попало сюда (tDSW) PORTD &= ~(1<<PD2); // установка Е=0 _delay_us(40); //Пауза между командами PORTD |= (1<<PD2); //установка Е=1 _delay_us(230); //Минимально допустимая длительность сигнала E=1 PORTD &= ~(1<<PD2); // установка Е=0 _delay_us(40); //Пауза между командами PORTD |= (1<<PD2); //установка Е=1 _delay_us(230); PORTD &= ~(1<<PD2); // установка Е=0 _delay_us(40); //Пауза между командами PORTD=0x02; //Установка типа интерфейса (4 бит) (0x02 - старший полубайт команды 0x20) (при этом биты RW и A0 измениться не должны!) PORTD |= (1<<PD2); //установка Е=1 _delay_us(230); //Время предустановки данных попало сюда (tDSW) PORTD &= ~(1<<PD2); // установка Е=0 _delay_us(270); //Минимально допустимый интервал между сигналами E=1 //Здесь индикатор входит в рабочий режим с установленным типом интерфейса и можно подавать команды как обычно lcd_com(0x2A); //Настройка правильного режима ЖКИ lcd_com(0x0C); //Включение индикатора, курсор выключен lcd_com(0x01); //Очистка индикатора lcd_com(0x06); //Установка режима ввода данных: сдвигать курсор вправо } void lcd_dat(uint8_t ch) //Sends Char to LCD { LDP=(ch&0b11110000); LCP|=1<<LCD_RS; LCP|=1<<LCD_E; _delay_ms(1); LCP&=~(1<<LCD_E); LCP&=~(1<<LCD_RS); _delay_ms(1); LDP=((ch&0b00001111)<<4); LCP|=1<<LCD_RS; LCP|=1<<LCD_E; _delay_ms(1); LCP&=~(1<<LCD_E); LCP&=~(1<<LCD_RS); _delay_ms(1); } //***************************************************************************** void lcd_com(uint8_t cmd) //Sends Command to LCD { LDP=(cmd&0b11110000); LCP|=1<<LCD_E; _delay_ms(1); LCP&=~(1<<LCD_E); _delay_ms(1); LDP=((cmd&0b00001111)<<4); LCP|=1<<LCD_E; _delay_ms(1); LCP&=~(1<<LCD_E); _delay_ms(1); }
  4. MT-16S2D-2YLG

    Добрый день. Хотелось бы попросить Вашей помощи в объяснении инициализации данного дисплея. Т.к. у него некоторые особенности работы в 4-х битном режиме, отличным от HD44780. У меня программа написана на библиотеке именно от HD44780. Как можно изменить код для работы с этим индикатором. Конкретно не понимаю, для чего мы отдаём конкретно один и ту же команду три раза. В примере от производителей МЭЛТ вообще не пониманию их код. Какие то определения и т.д. Да, я новичок в этом деле, может хоть поможете в поиске нужной литературы.... MT-16S2D.rar
  5. Обработка токовой петли

    Спасибо большое Yurkin2015. Эффект не заставил себя ждать. Если не сложно, можете пояснить, почему сокращать именно на число 5?
  6. Обработка токовой петли

    Так беспорядок в показаниях начинается после 2.5 вольт. Я согласен с вашей мыслью, но пока интересует именно текущая проблема. Спасибо. Кстати я пробовал ступенчато изменять формулу, и всё работало. Проблемы начинаются после деления на 655. Пробовал типы переменных менять с int на float. Ничего не помогает.
  7. Обработка токовой петли

    Спасибо всем за ответы. Пойду дальше в изучении программирования. Вот снова не могу понять, написал такую формулу lcd_num_to_str(((readADC(1)-164)*100)/655,3); но на дисплей выводится, извиняюсь, всякая ерунда. Если просто такой функцией выдать значение ADC на дисплей, то показывает в норме. Но после пересчета возникают проблемы. Пробовал использовать пересчет в строку, но абсолютно не помогает после введения расчетов. Kottedj.rar
  8. Обработка токовой петли

    Спасибо всем за ответы. Пойду дальше в изучении программирования.
  9. Обработка токовой петли

    Добрый день ,уважаемые специалисты. Прошу Вашей помощи в решении задачи. Подключил промышленный датчик с токовой петлёй к МК Atmega16. Через шунт 200 Ом получается размах от 1 до 4 В.Опорное напряжение 5В. Шкала прибора должна быть 0-100% (т.е. 1В - 0%, 4В - 100%). Если говорить про ADC, то получается диапазон между 205-819. Сам вопрос: как правильно запрограммировать МК, чтобы вывести показания на HD44780 в этом диапазоне шкалы. Сейчас у меня при входе 1В - 20%. Я понимаю, что так и должно быть, но не могу дойти до того, как сдвинуть эти данные. Или как сделать, что бы при 1В у меня показывало 0%, а при 4В-100%. Я ещё учусь, поэтому прошу строго не судить меня.
  10. Проседают 5V Thermaltake Tr2 Rx 1000W

    Не было сигнала PGI на супервизор. Отследил по дорожке и нашёл неисправный резистор. Заменил. После вставки платы с супервизором пропали все напряжения, кроме дежурного. Точнее при запуске появляются 12В, но когда держишь мультиметром, они падают до 0.
  11. Проседают 5V Thermaltake Tr2 Rx 1000W

    Спасибо за объёмный ответ. Осциллограф у меня есть. Буду смотреть. Сейчас фото скину. Вот фото
  12. Проседают 5V Thermaltake Tr2 Rx 1000W

    Пайка такая. Как запаивать обратно..... Но это ладно, главное с ШИМом разобраться.
  13. Проседают 5V Thermaltake Tr2 Rx 1000W

    Грузил резисторами с током 2А на канал. 12 В не просаживались. 3.3 В тоже в норме. Добавлю, что без нагрузок все напряжения в норме, но отсутствует напруга на PWR_OK. Выпаял ШИМ CM6802SANG. Но к сожалению не могу найти схему его проверки(аналогов для замены тоже не нашёл).
  14. Проседают 5V Thermaltake Tr2 Rx 1000W

    Добрый день. Есть проблема, что в данном БП проседают 5В при нагрузке свыше 800 мА. Началось с того, что при подключенном БП к материнской плате и запуске ПК начинают крутиться все приводы и вентиляторы, а запуска материнской платы не происходит. Я проверял дежурное напряжение = 5.34 В. Но раскачка до 5.33В (т.е нестабильно меняется от 5.33 до 5.34). Далее, после запуска нагрузил канал 12В - просадок нет, стабильно держит 12.09 В Но нагрузив канал +5В - при нагрузке свыше 0.8 А, напряжение падает до 3.1 В Разобрал блок. Видимых неисправностей нет. Вздутых конденсаторов нет. Дорожки целые. Непропаев необнаружил. Уважаемые форумчане, подскажите, что нужно проверить в первую очередь. Так же используется супервизор WT7527V. ШИМ пока не нашёл на платах и не могу сказать его модель.
  15. Добрый день. Уважаемые форумчане, помогите с поиском Даташита на вот этот дисплей http://tixer.ru/catalog/displays-and-indicators/lcd-displays/lcd_1602/ . Присланный дисплей не соответствует даташиту на этом сайте Или подскажите, какое питание нужно для него? 3,3 В или 5 В?