Перейти к содержанию

Arthur

Members
  • Постов

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

  • Посещение

Сообщения, опубликованные Arthur

  1. Вот я прочитал тут про погрешности. Если в момент обработки информации не отключать процессор микроконтроллера, О каких единицах погрешности идет речь?

  2. Кстати. Меня интересует вопрос. Есть опорное напряжение. Мне допустим надо что бы. Максимальное число (1023) было при подаче напряжения на АЦП + 3,4 вольта.

    Если АЦП работает в двухплечевом режиме, т.е. считывает как положительную так и отрицательную половолну, то макс (1023) от +1,7 вольт, и мин (0) от -1,7....

    и вообще можно ли устанавливать такое опорное напряжение меньше 5 вольт, я где то прочитал что не рекомендуется... Поясните плиз, не хочу просто еще одну тему создавать.

  3. Dt-lxOU0h7Q.jpg

    мне нужно обеспечить данный коэффициент усиления, с 1,7, до 2,5 v. Справится ли с такой задачей обычный транзистор КТ315 ? Или даже Операционный усилитель. Как правильно расчитать нужный мне коэффициент усиления по начальному уровню и конечному усилению.

  4. Puerto_serie_Rs232.png

    перед каждой посылкой байта мне нужно сначала стоп бит, потом старт бит, верно?

    и да. 31,25 Кбит/сек - это значит 31250 бит в секунду, значит один бит. (1 секунда = 1000000 микросекунд) . 1000000 / 31250 = 32 мкС длительность составляет 1 бит. Расчеты наверное верны.

  5. Как гласит википедия.

    MIDI

    Интерфейс представляет собой токовую петлю. Передатчик активный, 0..5 мА, наличие тока обозначает 0, нет тока — 1. Разъем 5-штырьковый DIN 41524. Приемопередатчик асинхронный, скорость 31,25 кбит/с, формат 8-N-1.

    Перелопатил весь интернет не нашёл.

    примеры.

    jMZ6slTAzjs.jpg

    Короче к сути. Где бы найти осциллограмму, наподобие то что я прислал. Как передаются Нулики и Единички?

  6. Толи я дурак, толи лыжи не едут, но я не могу никак запустить мой дисплей. Микроконтроллер Atmega8A - не знаю различия между ATMEGA8, но он выполнен на смд. программируется он легко, и читает всё. Писал тестовую прогу мигалку. Микроконтроллер работает. Работают все порты ввода и вывода, однако. Стырил прогу с сайта, протестировал в Proteus - там всё работает ок, однако на практике у дисплея только работает подсветка, сам он не бе не ме. Крутя ручку контрастности дисплей не откликается (незнаю должен ли в холостом ходе реагировать контрастность, но тем не менее. Итог дисплей запустить не могу. Я уж думаю может сдох. В следствии чего вопрос, может у кого есть тестовые программы для тестирования данного дисплея? Может у меня прога битая. А может я что-то не то делаю, и как проверить работоспособность дисплея? есть ли какие нибудь методы. Сразу хочу отметить что всё подключал как положено. Никакие провода не путал (100%)

    • R/W — Чтение/Запись. Уровень на этой ноге задает тип действия. 1 чтение, 0 запись.

    Я в том смысле - что он записывает что читает,... Записывает я понял в память дисплея, т.е. команду с микроконтроллера в ОЗУ дисплея, А чтение это что, Из памяти ОЗУ в микроконтроллер? или из памяти ОЗУ на выход дисплея? Вот что меня интересует, куда запись производится из чего, и откуда и для чего производится чтение.

  7. Помогите пожалуйста. Разобраться с дисплеем и правильной посылкой команд.

    Короче есть дисплей WG12864. Ночью не могу уснуть. Я видел много тем как люди его подцепляли, и сам копировал их программы, вставлял, разбирался, но мне всё же охота сделать своё. Я открыл даташит и много чего не понял. Прошу помощи разобраться в нём.

    есть ножка R/W - (Read/Write) что она делает, что читает и что записывает? Если я правильно понял то дисплей сначала записывает в себя W, а потом при выводе на экран нужно R что бы он прочитал то что записал и вывел на экран - Верно ли я понял?

    есть ножка D/I - (Data/Instruction) - Data - я понял это параллельный порт, DB0-DB7 по которому передаётся 8 бит информации, а Instruction - это команды типа, Вкл/Выкл Дисплей, и т.п.? верно ли я понял?

    Дальше есть стробирующий E - тактовый сигнал, после каждой команды или информации мне его надо посылать длительностью не менее 450нс? верно?

    PORT B / PORT D

    E RS RW DI S1 S2 / D0 D1 D2 D3 D4 D5 D6 D7

    0 1 2 3 4 5 6 7 / 0 1 2 3 4 5 6 7

    0 0 0 0 0 0 / 1 1 1 1 1 1 0 0 - Start // Запускаем дисплей

    0 0 0 0 0 0 / (0 0 0 0 0 0) 1 0 - X(0-64) // Устанавливаем курсор в ноль по Х

    0 0 0 0 0 0 / (0 0 0) 1 1 1 0 1 - Y(0-7) // Устанавливаем курсор в ноль по Y

    в atmel studio я начал писать такой код, верны ли мои начинания?

    #define F_CPU 8000000UL
    #include <avr/io.h>
    #include <util/delay.h>int main(void)
    {
      DDRD = 0xFF; // - порт D как вывод
      DDRB = 0xFF; // - порт B как вывод
      PORTB = 0b00000000;
    _delay_us(1);
      PORTD = 0b00111111; //включаем дисплей
    _delay_us(1);
      PORTD = 0b01000000; //курсор по Х на 0
    _delay_us(1);
      PORTD = 0b10111000; //курсор по Y на 0
    _delay_us(1);
    
      while(1)
       {
       }
    }
    

    Помогите чайнику в начале своего дела, как зажечь точку по координате Х и Y (1,1) - что надо делать дальше? какие команды посылать?

  8. 1. Транзисторы работают без смещения. Значит, на выходе будет "ступенька" (смотри рисунок).

    05324.png

    2. Выходное напряжение эмиттерного повторителя не зависит от напряжения питания. Точнее, если оно будет меньше входного напряжения, то на выходе будет ограничение. При достаточном питании на выходе будет то же, что и на входе (потому он и называется "повторитель").

    да по осциллограмме у меня это самое и получается. И когда я убавляю плечи амплитуды убавляются ровно, но до определённого момента, потом амплитуда резко исчезает. А какие способы включения могут помочь мне с данной проблемой?

  9. Доброе времени суток, я понимаю извращение, но надо мне вот такой способ регулирования выходного сигнала (громкость), будет ли работать данная схема как регулятор громкости? Резистор сдвоенный

    Hd3e1Ve8eyA.jpg

    если нет, то почему?

  10. Его бы не было если бы не было таких "умных" вопросов - "а зачем именно midi"

    наконец-то нашёл еще один ключ. как передаются нули и единицы в MIDI

    401.gif

    дальше еще что

    понял побитовую передачу данных

    612dzIjtJS0.jpg

  11. А может тогда не сидеть здесь и не делать умный вид, а идти давать советы на форум где продают китайские пианинки? Здесь насколько я понимаю форум для радиолюбителей, ну и новичков в этом плане, но никак не торгашей. О потраченных средствах прошу оставить суждение мне, и если я выбрал данный путь значит он осознанный. Для человека, который не работает с программами звукозаписи секвесторами, сложно объяснить "зачем здесь нужен миди интерфейс". Повторюсь я дал только полезную информацию, а вопросы "зачем?", это уже лишние, и я знаю на 100% что они ни чуть не помогут в поставленной задаче.

  12. BWv3pTuyogU.jpg

    Короче есть такая задумка, и не плохо было бы её воплотить в жизнь. Вот такая вот кнопка (чем то похожа на кнопку пианинки (почти xD)) под этой кнопкой расположен пьезодатчик который регистрирует силу удара этой кнопки по нему, т.е. чем сильнее стукнет кнопка по пьезо датчику тем сильнее будет считаться нажатие. сбоку у этого устройства имеются две кнопки "-" и "+" которые выбирают ноту по октавной системе (до, ре, ми, фа, соль, ля, си) и всё это передаётся по MIDI каналу, даже желательно бы по USB(MIDI) но с усб придется ещё драйвер писать для этой кнопки что усложняет задачу. Вопрос такой, протокол MIDI он сложный и как всё это осуществить на одном МК, из рода AVR? Впринципе пьезодатчик думаю повесить на встроенный в мк АЦП, хотя можно обойтись несколькими компораторами. Но итог всё равно, как организовать этот MIDI интерфейс, и плюс еще выбор ноты.

  13. Эм... Приспичило меня разделить порт D на Atmega - На половинки, т.е. половину разрядов на ввод, а половину на вывод. Как это написать? и как дальше работать с портом вывода отдельно не затрагивая порт ввода, т.е. допустим если я раньше писал.

    DDRD = 0xFF;
    DDRB = 0x00;
    if(PORTB == 0b01111111)
    {
    PORTD = 0x00;
    }
    

    то как мне тут сделать?

    допустим мы половину порта как ввод половину как вывод

    DDRD = 0x0F;
    if(??? == ???)
    {
    ??? = ???;
    }
    

    как тут писать условия для ввода и вывода?

  14. Извиняюсь за долгое отсутствие - работа, делает черное дело

    1) Смотря какая скорость, если будет скорость вывода картинок хотябы 5-10 в секунду, то тогда очень много картинок, больше сотни, если скорость маленькая, только наружная графика, а например стрелки там уже будут расчитываться векторно.

    2) Этого пока не знаю, узнаю напишу, опять же всё будет ясно после эксперемента с подключенной флешкой

    3) Загружен всегда, т.е. на порт F постоянно приходит параллельный код, с разных устройств, Часы, Компас. Акселерометр. и мк, он постоянно принимает эти данные и обрабатывая выводит на экран (это как бы "графический процессор", подобие видеокарты для дисплея. И он еще сохраняет эти данные во внутреннюю память МК, что опять же думаю, хватит ли её, может флешку придется не только на чтение.

    4) Только два Черный и Белый, ибо я не знаю помоему контроллер дисплея KS0108 не поддерживает больше

    5) Опыт есть в ШИМ, т.е. делал DMX контроллер, металлоискатель (правда там прошивка не особо моя), ну и также подрубал дисплеи простейшие (но с флешками ни разу не работал, честно)

    6) Выбор флешки обусловлен еще тем, что если скорость будет достаточная, для приёма и обмена картинками, то можно будет смело взять эту флешку и уже не прошивая контроллера загрузить другие картинки, с тем же названием, что очень будет удобно для обновления (графического интерфейса)

    Вообще по задумке это должен быть "велокомпьютер"

×
×
  • Создать...