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

SDD39

Members
  • Постов

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

  • Посещение

Весь контент SDD39

  1. На микросхеме YX8018 от садового фонарика можно сделать простой отбраковщик электролитических конденсаторов. На плохих конденсаторах белый светодиод светится слабее или совсем гаснет. На хороших загорается сильнее. Если конденсатор пробит , то светодиод так же гаснет. Порог срабатывания зависит от индуктивности между выводом 1 микросхемы и выводом проверяемого конденсатора . Т.е. Конденсатору Сх1 надо иметь меньшее внутреннее сопротивление чем Сх2 , для того , чтобы светодиод с ним горел ярче , а не слабее. Посмотреть можно здесь
  2. Исполнение красивое. Но как синус получается без контурного конденсатора? И R7 при верхнем положении движка , через L1 , закоротит питание.
  3. Я такой на одном транзисторе в мастерскую сделал. В случае чего сгорает только резистор на 10 Ом . Менял его уже не меньше десятка раз.
  4. Электронная кнопка с функцией защиты . Если Ri не ставить , то отключает нагрузку более 20 Ватт. Срабатывает на превышение среднего тока. Реле на 12 вольт 125 миллиВат т.е. обмотка реле с сопротивлением около киллоома.
  5. После того , как я просчитал и написал программу на Си , для оптимального энергетического режима такого усилителя , решил всё таки собрать такой УНЧ хотя бы на картонке. То , что получилось можно посмотреть на моём канале. Пиковая выходная синусоидальная мощность около 1 Ватта. Что не плохо для макетки , учитывая крайне низкий КПД таких усилителей , менее 10% .
  6. Гипотетически, после хороших ударов током , и лет 50 комы , на свет может явиться великий учёный , и изобрести машину времени , или вечный двигатель, а вы пытаетесь этому помешать.
  7. @KomSoft Лучше с 4 вывода оптрона . Там напряжение изменяется от 9 Вольт до 3.3 Вольт. А ток резистора R1 меняется почти от нуля , до почти 6 мА.
  8. Электронная кнопка на одном оптроне. При токе более 4 мА оптрон , согласно характеристике , начинает усиливать ток. Это позволило собрать на его основе простой триггер , управляемый одной кнопкой.
  9. Для улучшения линейности полевика делается обратная связь из резистора со стока на затвор , а смещение на затвор подаётся через резистор с таким же сопротивлением. Но и сам усилитель должен симметрично усиливать обе полуволны. Тут даже важнее , чтоб усиление падало для обоих полуволн . Иначе стабилизация амплитуды становится весьма не устойчивой. Т.к. в ОУ второй каскад обычно выполнен по схеме с ОЭ , то данное условие практически не выполнимо .
  10. @ГОГА рижский КПЕ надо в экранированный корпус посадить. С ним он образует небольшую дополнительную ёмкость параллельную С2 . Надо такую же параллельную ёмкость в виде подстроечного конденсатора посадить параллельно С1 и отбалансировать мост на максимальной частоте. Я тоже начал собирать себе генератор на КПЕ ещё в прошлом году. Подкупает главным образом сбалансированность секций по ёмкости. Доступность кпе и их неубиваемость от постоянного вращения , в отличии от сдвоенных резисторов. Разработал схему на транзисторах . Даже печатку собрал, настроил и запустил. Он у меня дал стабильную амплитуду до 5 Мегагерц. Но потом забросил. Так и лежит . ,
  11. Спасибо за совет . Но в следущей строчке sinus = ZER * sinus + ZER; , я вроде тоже самое делаю - добавляю смещение. И похоже , я уже понял в чём причина - старший бит ... инвертированный . Изменил строчку вот так in = ((unsigned int)sinus)^32768 ; и синус пошёл нормально , в полном диапазоне 16 бит. А размах стал около 2.5 Вольт.
  12. Здравствуйте друзья. Изучаю программирование на Ардуино и пытаюсь подключить к нему различные микросхемки , которые попадают мне под руку. Вот и попалась мне ЦАП РТ8211 . Дешёвая микросхема , которую я снял с поломоного спутникового ресивера. Протокол работы с ней оказался не сложный по этому посидев несколько часов я написал програмку работы с ней. Принимает она по 16 бит на вывод DIN для двух каналов . Всего 32 бита получается. По переходу с 0 на 1 вывода BCK каждый бит прописывается в ячейках цап . Битов можно передавать и больше , но останутся только последние 16 , по переходу вывода WC. Изменение состояния этого вывода с 0 на 1 сохраняет в цап последние 16 битов для правого канала , а обратный для левого. Но с использованием старшего бита MSB связана какая то загадка . Вот пример какая синусоида получилась здесь http://arduino.ru/forum/obshchii/pt8211. У меня так же получилась нормальная пила и странная синусоида. Тогда я не стал использовать значения , затрагивающие старший бит , и синусоида вышла нормальная. С прямым вычислением синуса частота получилась 298 Герц. Не много конечно , но без вычислений синуса с пилой , частота на пине WS около 20 килогерц. Синусоида получилась размахом около 1.2 Вольт. // программа работы с ЦАП РТ8211 пины 1 - BCK , 2 - WS , 3 - DIN , 4 - GND , 5 - +5V , 6 - Left Out , 7 - nc , 8 - Rite Out #define Port PORTB // оределяем рабочий порт // определим назначение пинов этого порта // для ардуино #define BCK 8 // to pin 1 тактовый сигнал #define WS 9 // to pin 2 0 - правый канал , 1- левый канал #define DIN 10 // to pin 3 16 бит данных // для соответствующих пинов порта #define PORT_BCK B001 // тактовый сигнал #define PORT_WS B010 // 0 - правый канал , 1- левый канал #define PORT_DIN B100 // 16 бит данных #define Dt 5 // полупериод в мкс для BCK #define MAX 32768.0 //65535.0 используем меньшие значения не затрагивая старший 16 бит #define ZER 16384.0 //32768.0 #define pi_pi 6.2831853 #define st 0.340261 //volatile byte w =1 ; // micros() // возвращает количество микросекунд разрешение 4 микросекунды void setup() { // put your setup code here, to run once: pinMode ( BCK , 1 ); pinMode ( WS , 1 ); pinMode ( DIN , 1 ); pinMode ( 13 , 1 ) ; noInterrupts(); } void loop() { // put your main code here, to run repeatedly: unsigned int in , tt ; float r_ad ; double sinus ; boolean f = 0 ; for ( r_ad = 0 ; r_ad <= pi_pi ; r_ad += st) { // будем линейно увеличивать данные для ЦАП //tt = micros(); //while ( micros()-tt < 20); //digitalWrite(13, f); sinus = sin(r_ad); sinus = ZER * sinus + ZER; in = (unsigned int)sinus; BUS_Send (in) ; // отправим данные в ЦАП f = !f ; // моргаем 13 пином //interrupts(); } } void BUS_Send ( word Data_In ) { // volatile byte i ; byte Bus_Out , i = 0 ; word temp , sdvig = 32768 ; unsigned long Timer ; boolean D = 1 , flag = 1 ; Bus_Out = Port & ~(PORT_BCK + PORT_WS + PORT_DIN) ; //сбрасвываем линии while ( i <= 31 ) { //Передаём 16 бит в правый канал 31 и 16 нулей в левый if ( flag ) { // флаг правого левого канала //Bus_Out = Port & ~PORT_DIN ; if ( Data_In & sdvig ) { // определяем что передаём DIN , 0 или 1 Bus_Out |= PORT_DIN; // PORT_DIN * D ; // Выводим DIN } else Bus_Out &= ~PORT_DIN; sdvig >>= 1 ; // сдвигаем позицию следущего бита из Data_In } else Bus_Out &= ~PORT_DIN ; Port = Bus_Out ; //на этом моменте BCK = 0 , DIN установлен // sdvig >>= 1 ; // сдвигаем позицию следущего бита из Data_In Bus_Out |= PORT_BCK ; // подготавливаем переход BCK c 0 на 1 Port = Bus_Out ; // фиксируем бит DIN переходом BCK c 0 на 1 Bus_Out = (Bus_Out & ~PORT_BCK); // подготавливаем переход BCK с 1 на 0 if ( i == 15 ) { // формирование нулей для левого канала Bus_Out |= PORT_WS ;// подготовка строба записи правого канала WS flag = 0 ; } i++; Port = Bus_Out ; } Port = Port & ~PORT_WS; // строб записи левого канала WS } PT8211.rar
  13. @Demonrostov Спасибо за ответ. Нет , телевизор я собирать не собираюсь.)) Наоборот . эту платку взял на работе после разборки уже ненужного телевизора и просто экспериментирую . Для меня важнее правильно ли я пишу код для ардуино , т.к делаю только первые шаги в изучении.
  14. Сегодня смог запустить от Ардуинки I2C драйвер M62320 . Но не так как хотелось . Каждый раз приходится передавать два байта . В начале формировать выводы на выход а потом второй байт данных . Хотелось бы узнать , есть ли другие варианты работы с I2C шиной и этой микросхемой. Даташит во вложении. Лампочки горят с разной яркостью по тому что некоторые светодиоды подпорчены. #include <Wire.h> //Библиотека I2C // адрес 57 int ADR_DATA1 = 57 ; // Адрес первой М62320 int ADR_DATA2 = 58 ; // Адрес второй М62320 void setup() { // put your setup code here, to run once: Wire.begin (); // Инициируем I2C pinMode(13 , 1); } void loop() { boolean F = 0; byte i = 0 , i2 = 255 ; // Теперь будем передавать произвольные данные и зажигать различные светодиоды while (i++ <= 254) { Wire.beginTransmission (ADR_DATA1); // устанавливаем адрес общения для передачи данных Wire.write (255); // устанавливаем все порты М62320 на выход Wire.write (i); // передаём переменную i в порты М62320 Wire.endTransmission(); // Разрываем общение с M62320 Wire.beginTransmission (ADR_DATA2); // устанавливаем адрес общения для передачи данных Wire.write (255); // устанавливаем все порты М62320 на выход Wire.write (i2); // передаём переменную i2 в порты М62320 Wire.endTransmission(); // Разрываем общение с M62320 i2 -= 1; digitalWrite (13 , F); F = !F ; // мигаем 13 светодиодом delay(100); // 0.1 секунды задержки между передачами } //Wire.endTransmission(); // Разрываем общение с М62320 } M62320 LED Dryver.pdf
  15. Это повышающий преобразователь. На него надо подавать меньшее напряжение чем на выходе. С другой стороны если подать напряжение на его вход больше 5 вольт , то он выключится и на выходе будет напряжение меньшее на величину падения диода шотки , установленного в нём , где то на 0.3 Вольта. Но пишут , что при малой разнице перепада напряжений он может работать не устойчиво. А для двух были? Логичнее именно две батарейки использовать с таким преобразователем.
  16. Классно. А то я хотел получить парафазный сигнал на выходе с максимальной частотой и при эмуляции в Протеусе заметил , что цикл void loop() возвращается слишком долго и сильно снижает частоту , но побоялся его обрезать.
  17. @Alexeyslav Ясно. А не подскажите. Если я где нибудь в программе запущу бесконечный цикл типа while (1) {_________} ; Или даже так: noInterrupts(); while (1) {_________} ; Не приведёт ли это к потери возможности перезаписать Ардуинку другим скетчем?
  18. @Alexeyslav Спасибо за информацию. Проверил залив два немного отличающихся скетча. Нормально заливаются и работают. Но получается что я с чистого проца считал программатором прошивку и она находилась в начале , а не в конце. Но тут интересный момент.Первое же включение Ардуинки уно показало что она моргает 13 светодиодом , хотя я ни чего туда не заливал. А так же купил вчера ещё на барахолке ардуино нано , и она так же моргала 13 светодиодом , как будто ещё на заводе в них залит скетч Blink из ИДЕ.
  19. Решил я свою задачу. Просто тупо считал из родной меги328р и прошивку и фьюзы. Прописал это на пустой процессор и всё заработалоНо прошивка отличается от ИДЕшной . В проце сидела заводская и код вней начинается в начале а потом одни FF . А в иде прошивка вначале ФФ и в конце самом код. Всем , кто хотя бы задумался над моим вопросом спасибо.
  20. @snn_krs Спасибо! Нашёл там прошивку optiboot_atmega328.hex. Теперь чешу репу с фьюзами на программаторе TNM-5000. А можно ли из ИДЫ через этот программатор прошить? А то для этого программатора родная программа .... без поллитра там со фьюзами не разберёшься. И где можно взять правильные фьюзы?
  21. Подскажите пожалуйста кто знает. Пару дней назад получил из китая стартовый набор Ардуино уно. Т.к. Во время изучения могут возникнуть сбои в работе Меги328Р, по этому хочу кутить ещё один процессор и прошить его. На работе стоит программатор TNM-5000. Процессор этот в нём есть. А вопрос вот в чём. Можно ли прямо снять прошивку и фьюзы из родного процессора и залить их в новый процессор.
  22. Пришёл на работу. Коллеги доели питцу. Картон от упаковки питцы стал основой для быстрого изготовления корпуса. Время - деньги.))
×
×
  • Создать...