• Примеры использования драйвера DS18B20 от CooCox для STM32 (несколько датчиков на линии)

    Ocelot
    @Ocelot
    1. Что возвращает DS18B20Reset()? Устройства на линии вообще отвечают на импульс сброса?

    2. С тактированием ничего не напутали? Контроллер работает именно на той частоте, которая нужна? Если тайминги будут неправильными, 1-wire работать не будет.

    Идеально было бы взять осциллограф и посмотреть, что именно творится на линии. Будет хоть ясно, то ли лыжи не едут... то ли проблема в опросе датчика, то ли в интерпретации результата.
    Ответ написан
    Комментировать
  • Идентифицировать микросхему?

    Ocelot
    @Ocelot
    Это контроллер литиевой батареи. Корпус TSSOP-8. Попробуйте поискать такие микросхемы в разных каталогах и посмотреть, какая похожа на вашу по рабочим параметрам (тип батареи, напряжение, ток), распиновке и обвязке.

    Может быть, это что-то из fortune`овских микросхем: FS8820, FS3332 или DW01MC (http://www.ic-fortune.com/eng/new_product1_1.asp)
    Насколько разглядел, по распиновке подходят: 1 и 2 пины — земля, 3 и 4 вместе, 6 и 7 тоже вместе.
    Ответ написан
    Комментировать
  • Простейшее устройство передачи данных по силовой сети?

    Ocelot
    @Ocelot
    X10 заточен под «один передатчик — много приемников», а у вас ситуация протовоположная: «много передатчиков — один приемник».
    Если не применять двустороннюю связь, избежать коллизий будет довольно сложно. Можно использовать псевдослучайные интервалы времени между посылками.

    В качестве физического уровня можете посмотреть на м/с КР1446ХК1, LM567, TDA5051, ST7538/ST7540. Готовые PLC-модемы вряд ли отвечают условию «максимально дешево».
    www.soel.ru/cms/f/?/376853.pdf
    kazus.ru/forums/showthread.php?s=e39bbb45ec79fe3141debff570162db2&t=17551
    Ответ написан
    1 комментарий
  • Как создать опрос?

    Ocelot
    @Ocelot
    habrahabr.ru/topic/add/
    Внизу ссылка «Добавить опрос».
    Ответ написан
    1 комментарий
  • Возможно ли отредактировать пост, оформив его как перевод?

    Ocelot
    @Ocelot
    Увы, нет. Только опубликовать заново, потреряв все комментарии и рейтинг.
    Ответ написан
    2 комментария
  • Влияние потока нейтронов на светодиоды?

    Ocelot
    @Ocelot
    Светодиоды будут деградировать. Хотя широкозонные п/п (SiC, InP, InGaN) из которых делают яркие светодиоды, ведут себя при облучении в среднем лучше, чем Si и Ge, они будут деградировать все равно. Нельзя также исключать деградации люминофора белых светодиодов.

    Как вариант, можно попробовать оптоволоконную подсветку: вынести источник за пределы канала и передавать свет по световодам.
    Ответ написан
    Комментировать
  • Датчики 1-wire и Raspberry Pi

    Ocelot
    @Ocelot
    С точки зрения датчика, работающего по 1-wire, нет разницы, как реализован Master: на Arduino, RPi или еще как — стандарт на то и стандарт. Так что можно подключать любые. Другое дело, что датчик влажности сам по себе довольно дорогая железяка.
    Ответ написан
  • Подключение нескольких датчиков 1w к Raspberry Pi

    Ocelot
    @Ocelot
    w1 -> 1w (1 wire)?
    Если да, то можно и даже нужно, протокол 1w явно предусматривает подключение нескольких устройств на одну шину.

    Все датчики включаются параллельно. Обращение к нужному датчику ведется по уникальному адресу, все остальные в это время не мешают. Перед началом работы необходимо провести процедуру поиска устройств, чтобы узнать адреса. Ключевая фраза для гугления: 1-wire search rom.
    Ответ написан
    Комментировать
  • Прерываниями по таймерам Arduino MEGA?

    Ocelot
    @Ocelot
    void setup()
    {
    //------ Timer0 ----------
    TCCR0A = (1<<WGM01);   // Режим CTC (сброс по совпадению)
    TCCR0B = (1<<CS00);    // Тактирование от CLK.
                           // Если нужен предделитель :
    // TCCR0B = (1<<CS01);           // CLK/8
    // TCCR0B = (1<<CS00)|(1<<CS01); // CLK/64
    // TCCR0B = (1<<CS02);           // CLK/256
    // TCCR0B = (1<<CS00)|(1<<CS02); // CLK/1024
    
    OCR0A = 123;            // Верхняя граница счета. Диапазон от 0 до 255.
                            // Частота прерываний будет = Fclk/(N*(1+OCR0A)) 
                            // где N - коэф. предделителя (1, 8, 64, 256 или 1024)
    TIMSK0 = (1<<OCIE0A);   // Разрешить прерывание по совпадению
    
    //------ Timer1 ----------
    TCCR1B = (1<<WGM12);    // Режим CTC (сброс по совпадению)
    TCCR1B |= (1<<CS10);    // Тактирование от CLK.
                            // Если нужен предделитель :
    // TCCR1B |= (1<<CS11);           // CLK/8
    // TCCR1B |= (1<<CS10)|(1<<CS11); // CLK/64
    // TCCR1B |= (1<<CS12);           // CLK/256
    // TCCR1B |= (1<<CS10)|(1<<CS12); // CLK/1024
    
    OCR1A = 2678;           // Верхняя граница счета. Диапазон от 0 до 65535.
                            // Частота прерываний будет = Fclk/(N*(1+OCR1A)) 
                            // где N - коэф. предделителя (1, 8, 64, 256 или 1024)
    TIMSK1 = (1<<OCIE1A);   // Разрешить прерывание по совпадению
    
    //------ Timer2 ----------
    TCCR2A = (1<<WGM21);    // Режим CTC (сброс по совпадению)
    TCCR2B = (1<<CS20);     // Тактирование от CLK.
                            // Если нужен предделитель :
    // TCCR2B = (1<<CS21);                     // CLK/8
    // TCCR2B = (1<<CS20)|(1<<CS21);           // CLK/32
    // TCCR2B = (1<<CS22);                     // CLK/64
    // TCCR2B = (1<<CS20)|(1<<CS22);           // CLK/128
    // TCCR2B = (1<<CS21)|(1<<CS22);           // CLK/256
    // TCCR2B = (1<<CS20)|(1<<CS21)|(1<<CS22); // CLK/1024
    
    OCR2A = 234;            // Верхняя граница счета. Диапазон от 0 до 255.
                            // Частота прерываний будет = Fclk/(N*(1+OCR2A)) 
                            // где N - коэф. предделителя (1, 8, 32, 64, 128, 256 или 1024)
    TIMSK2 = (1<<OCIE2A);   // Разрешить прерывание по совпадению
    
    sei ();                 // Глобально разрешить прерывания
    }
    
    ISR (TIMER0_COMPA_vect)
    {
        // Обработчик прерывания таймера 0
    }
    
    ISR (TIMER1_COMPA_vect)
    {
        // Обработчик прерывания таймера 1
    }
    
    ISR (TIMER2_COMPA_vect)
    {
        // Обработчик прерывания таймера 2
    }
    


    Вместо тега CODE тег SOURCE используй, юный падаван.
    Ответ написан
    Комментировать
  • Чем проклеить экструдер 3D-принтера?

    Ocelot
    @Ocelot
    Спросите в автомагазине высокотемпературный герметик.
    Ответ написан
    Комментировать
  • Маркировка микроконтроллеров

    Ocelot
    @Ocelot
    ATMEGA88PA-AU 1016
    AT — код производителя (Atmel)
    MEGA — серия контроллеров
    88 — модель. Первая восьмерка — объем флеш-памяти, есть еще 48, 168, 328
    P — технология picoPower (сниженное энергопотребление)
    A — расширенная периферия (по сравнению с версией без буквы A) добавлены каналы ШИМ, режимы таймеров, еще по мелочи. Mega88A обратно совместима с mega88.
    A — код корпуса (TQFP)
    U — выводы луженые (бывает еще MH — покрытие «никель-палладий-золото»)
    QFP32 — человеческое название корпуса

    Последние 4 цифры — номер партии. Теоретически, по нему можно узнать ревизию контроллера (см. секцию Errata в даташите).

    ATMEGA88-20AU 0634
    20 — максимальная тактовая частота. Есть еще mega88L-10 — частота ниже, но шире диапазон питающих напряжений. Для новых контроллеров (mega88A) такая маркировка не применяется, они все работают в полном диапазоне напряжений, у них нет деления на speed grades (-/L/V)
    Ответ написан
    2 комментария
  • Как в Android получить данные с микроконтроллера?

    Ocelot
    @Ocelot
    Если ttyUSB никак не захочет работать, а подключение требуется непременно через USB, можно заставить контроллер прикинуться HID-устройством (клавиатурой).
    Ответ написан
  • Чем измерить скорость света

    Ocelot
    @Ocelot
    Напрямую (по временным задержкам) измерять скорость света — не самое лучшее решение. Используйте интерферометрию или хотя бы схему Физо.

    Если уж хочется измерять «в лоб», то отсчитать 1мкс с точностью 10нс не слишком сложно. Источник света — полупроводниковый лазер, приемник — быстродействующий фотодиод (например, из тех, что стоят в оптоволоконных приемниках). Драйверы излучателя и приемника тоже можно взять оптоволоконные.
    В качестве таймера можно собрать счетчик на «быстрой» логике (семейств 74AHC/AHCT/AS/F) или на FPGA. Можно просто смотреть задержку по осциллографу.
    Ответ написан
    Комментировать
  • Комбинированные реле для управления светом?

    Ocelot
    @Ocelot
    Попробуйте вот так:

    Слева — обычное реле на две группы на замыкание. Справа — импульсное, со входами установки (S) и сброса (R).
    Кнопка внизу слева переключает реле в противоположное состояние: если оно было выключено (положение контактов, как на чертеже), то по нажатию кнопки сигнал подается на вход S. Если включено (перекидной контакт направо) — то на вход R. Две кнопки посередине принудительно включают и выключают реле.
    Ответ написан
    Комментировать
  • Схема телевизионного селектора

    Ocelot
    @Ocelot
    Да, будет работать. Вместо тумблеров можно поставить кнопки с зависимой фиксацией (одну нажал — остальные отщелкнулись), например, П2К:
    Ответ написан
    Комментировать
  • Есть ли вебки, транслирующие ночное небо онлайн?

    Ocelot
    @Ocelot
    Веб-камера, транслирующая ночное небо — довольно нетривиальное устройство. Нужна светосильная (и в то же время широкоугольная) оптика, нужно прятать ее от искусственных источников света (и от солнца днем), нужно постоянно чистить от осадков и т.д. Вероятность, что кто-то замутил такое «just for fun», стремится к нулю.
    Есть трансляции с телескопов, но там далеко не всё небо.

    Единственное, что могу предложить — заменитель, максимально «идентичный натуральному». Виртуальный планетарий, вроде Stellarium. Там можно выставить свои реальные координаты и время наблюдения, выбрать нужные слои, поиграть с настройками графики и получить картинку, неотличимую от настоящей.
    Ответ написан
    1 комментарий