Ответы пользователя по тегу Arduino
  • Возможно ли подключить монетоприемник EU9 к arduino uno?

    Ocelot
    @Ocelot
    У этого монетоприемника тоже есть импульсный выход, подключать так же. Может только отличаться длительность импульса и процедура калибровки.
    Ответ написан
    Комментировать
  • Можно ли как-то в Arduino Uno управлять питанием платы?

    Ocelot
    @Ocelot
    Если нужно действительно физически разрывать питание, то только как предложено выше, с перепайкой. Если нужен просто функционал включения-выключения устройства, то повесить выключатель на один из пинов. Если разомкнут - ронять контроллер в спячку (sleep или power down), если замкнут - будить.
    Правда в ардуино стоит стабилизатор с собственным потреблением в несколько миллиампер, так что батарейка медленно высасываться все равно будет.
    Ответ написан
    Комментировать
  • Arduino RFID сервопривод как написать программу новичку?

    Ocelot
    @Ocelot
    Почитайте про конечные автоматы. У вас тут простейший: два состояния (открыто-закрыто), два перехода между ними (по rfid). Чтобы замок не колбасило туда-сюда при приложенной карточке, есть два решения:
    1. (легкое) Задержка чтения rfid после смены состояния.
    2. (правильное) Добавить в автомат два промежуточных состояния
    открыто_2 --(поднесли карту)--> закрыто_1 --(убрали карту)--> закрыто_2 --(поднесли карту)--> открыто_1 --(убрали карту)--> открыто_2

    Как-то так.
    Ответ написан
    1 комментарий
  • Не могу настроить rx-tx порты, как завести клон Arduino?

    Ocelot
    @Ocelot
    1) Питание на контроллер подается? Не на плату, а на сам чип. Можно измерить непосредственно на ногах атмеги или на конденсаторах рядом.
    2) Если в атмегу не прошит загрузчик, через UART ничего залить не получится. Попробуйте подключиться через ISP (6-пиновый разъем).
    Ответ написан
    Комментировать
  • Какой алгоритм шифрования оптимален для коротких блоков данных (меньше 32 бит)?

    Ocelot
    @Ocelot
    Раз пользователь вводит руками, поток данных совсем небольшой. Используйте одноразовые ключи (шифр Вернама). Четырехмегабайтной флешки хватит на миллион блоков. Это два года непрерывной работы, если вводить данные раз в минуту.
    Ответ написан
    2 комментария
  • Питание atmega328 от usb?

    Ocelot
    @Ocelot
    Не сгорит. Двухамперность блока питания говорит только о его максимальном токе. Если контроллер потребляет меньше, никто не будет в него насильно эти два ампера вкачивать.
    Ответ написан
    Комментировать
  • Как обеспечить безопасность в самодельном иммоблайзере на ардуино?

    Ocelot
    @Ocelot
    Смотреть в сторону криптографических Rfid-меток. Например, Mifare DESfire. Но, боюсь, ардуино не потянет работу с ними. Во-первых, эти метки высокочастотные (13 МГц), нужна отдельная схема считывателя. Во-вторых, у AVR может не хватить памяти и вычислительной мощности для работы с криптографией.

    Еще вариант - сделать брелок самому, на микроконтроллере с каким-нибудь радиомодулем. Протокол обмена можете сделать какой угодно, хоть с одноразовыми кодами.
    Ответ написан
    Комментировать
  • Как управлять светодиодной матрицей 16x16 с помощью LED драйверов?

    Ocelot
    @Ocelot
    2 драйвера, один на столбцы, другой на строки - не получится. Допустим, линии столбцов выведены на TLC5940. Он замыкает свои выходы на землю, значит, линии строк надо замыкать на VСС. Для этого нужно 16 P-канальных транзисторов и сдвиговый регистр, чтобы их переключать.

    Алгоритм работы будет следующий:
    1) Включить 1-ю строку (в регистре 1111...1110, p-канальный транзистор открывается "нулем")
    2) Передать в драйвер значения ШИМ для всех пикселей строки
    3) Выждать некоторое время
    4) Сдвинуть регистр для включения следующей строки (1111...1101)
    5) GOTO 2
    Ответ написан
    7 комментариев
  • Как подружить Arduino с считывателем TM?

    Ocelot
    @Ocelot
    JSB KTMn-11 - это не считыватель, а просто контакты для "таблетки". Считывание TouchMemory на Arduino реализовать проще простого. Скорее всего, вам нужен протокол 1-Wire: playground.arduino.cc/Learning/OneWire
    Ответ написан
    Комментировать
  • Какой есть недорогой PLC (Powerline communication) контроллер?

    Ocelot
    @Ocelot
    Минимальная скорость для управления лампочками - это протокол X10. Схем в интернете куча, никаких специальных микросхем не нужно, только МК+аналоговая обвязка.
    Если нужно чуть больше скорости/возможностей, поглядите следующие PLC-приемопередатчики: КР1446ХК1, LM567, TDA5051, ST7538/ST7540.
    Ответ написан
    Комментировать
  • Прерываниями по таймерам 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 используй, юный падаван.
    Ответ написан
    Комментировать
  • Arduino. Вопрос по возможностям Arduino Nano?

    Ocelot
    @Ocelot
    Всего контактов 14. Каждый из них может работать как цифровой вход или выход. 6 из них поддерживают аппаратный ШИМ, другие 6 могут работать как аналоговые входы (но если хотите, останутся обычными дискретными).
    Можно управлять 6 сервами без дополнительных ухищрений, и 14-ю, если сделать программный ШИМ. Число аналоговых входов можно увеличить только добавив внешний АЦП.
    А что у вас за приемник, что выдает аналоговые сигналы? Обычно на выходе либо цифра, либо ШИМ (тогда контроллер вообще не нужен, сервы цепляются прямо к приемнику).
    Ответ написан
    3 комментария
  • Arduino + Android передача данные в реальном времени?

    Ocelot
    @Ocelot
    При приеме новых даных должно генерироваться прерывание, обработчик которого должен либо передавать данные в основную программу (если та свободна), либо сбрасывать буфер приема (если в данный момент выполняется delay()).
    Ответ написан
  • Arduino USB Shield примеры?

    Ocelot
    @Ocelot
    Совсем недавно тут, на Хабре, была статья — как специально для вас: Arduino + USB Host Shield + Android. Свяжитесь с автором, думаю, он вам поможет.
    Ответ написан
    1 комментарий
  • Механическая рука на Arduino?

    Ocelot
    @Ocelot
    1) Сервы используйте какие вам удобно, исходя из габаритов и необходимого крутящего момента. Управляются они все одинаково (мы сейчас говорим об аналоговых сервах, которые с тремя выводами).
    2) По числу выводов — достаточно, по быстродействию — вполне, по количеству памяти — смотря как распишетесь :) На мой взгляд — более чем.
    3) У сервы 3 вывода: земля, питание (обычно 6V) и управление (ШИМ). Моторшилд не нужен, достаточно просто отдельного источника питания для приводов (каждая серва может жрать до 1А, исходите из этого). Выводы питания (VCC) всех серв соединяете вместе и подключаете к + этого источника. Выводы земли (GND) — тоже вместе и к минусу питания. Не забудьте соединить землю Arduino и землю внешнего источника.
    Выводы управления серв подключаете к портам контроллера (на этот раз каждую серву — отдельно к своему пину). Проблема в том, что на Arduino Uno всего 6 выходов с аппаратным ШИМ, а приводов у вас семь. Для одного из них ШИМ придется генерировать программно. Впрочем, ничего страшного.
    4) На Arduino Uno есть USB порт, управлять с компьютера получится.
    Ответ написан
    8 комментариев
  • ATmega8, обработка видео потока

    Ocelot
    @Ocelot
    Давайте посчитаем.
    Допустим, у нас видео 640x480@25FPS, поток данных будет 640*480*25=7.68 Мпикс/с. Максимальная тактовая частота контроллера ATmega8 — 16МГц. То есть на обработку каждого пикселя изображения остается чуть больше двух тактов. Вряд ли получится сделать что-то разумное за 2 такта. Напрашивается два вывода:

    1) Если обработке подвергается вся картинка, или видеосигнал генерируется с нуля, то о сколь-нибудь высоких разрешениях можно забыть. Неплохо пойдет обработка текстового режима. Вот пример простого терминала на атмеге: www.serasidis.gr/circuits/TV_terminal/Small_TV_terminal.htm

    2) Если обработке подвергается небольшая часть картинки (например, наложение текста на изображение), то это вполне реально. Как пример — OSD (on-screen display): garydion.com/projects/videoverlay/ Тут, правда, используется внешний детектор синхросигналов (LM1881), но и вам никто не запрещает его использовать.
    Ответ написан
    Комментировать
  • Adruino — O'Baka

    Ocelot
    @Ocelot
    Контакты разъема mini-USB (вид снаружи, со стороны штекера)

    Схема подключения полностью такая же, как для «большого» разъема (http://farm3.static.flickr.com/2478/3964932530_731805d3c3.jpg)
    Резисторы на линиях D+ и D- по 33 Ома (можно от 27 до 68, главное, два одинаковых). Между D- и Vcc резистор на 1.5 кОм. От линий D+ и D- на землю — стабилитроны на 3.6 В, для защиты от перенапряжений.
    Ответ написан
    4 комментария