Двоичный считыватель с arduino мигает 8 светодиодами

Im пытается вставить двоичную сырую последовательность (01010100, 01101000, 01100001) в Arduino. Я хотел бы заставить 8-светодиодную группу мигать в цикле, показывая со светом каждую 8-групповую двоичную последовательность, когда: 0=light off и 1=light on.

Можно ли сделать эту операцию с Arduino-uno ?

, 👍0

Обсуждение

я не думаю, что двоичные файлы поддерживаются в arduino, но вы можете использовать побитовые операторы с десятичными значениями этих двоичных файлов, @razzak

Вы должны быть в состоянии сделать то, о чем просите, однако ваш вопрос не очень ясен. Вы спрашиваете, как бы вы включили/выключили светодиоды на основе двоичного значения переменной или как бы вы получили необработанную последовательность в Arduino/исходный код? Или и то и другое? Как вы хотите получить эту последовательность в Arduino? Должен ли он быть предварительно написан в исходном коде, сохранен на каком-либо внешнем устройстве (например, SD-карте), введен пользователем с какого-либо другого оборудования (например, клавиатуры) или передан (по беспроводной связи или через последовательное соединение)?, @Mick Waites

@razzak: Двоичный код, не поддерживаемый Arduino, - это самое глупое утверждение, которое я когда-либо слышал об этой платформе. Почти все, что находится внутри Arduino, является двоичным. Десятичное число используется только для ввода-вывода, и только потому, что нам, людям, оно нравится больше, чем двоичное., @Edgar Bonet

@EdgarBonet я говорил об использовании двоичных литералов, а не операций на уровне процессора, вы не можете сделать int x = 01001001; в arduino. Однако вы можете использовать двоичную [специальную нотацию (форматер)](http://www.arduino.cc/en/Reference/IntegerConstants) как `int x = B01001001;", который не является фактическим двоичным, а скорее предопределенным десятичным, как это делается "#define B01001001 73"., @razzak

Затем, в своем первоначальном комментарии, вы не смогли прояснить, о чем вы говорили. Обозначение “B”, _ в реальной практике _ не сильно отличается от “0x” для hex. Или даже десятичное число, которое, в конце концов, всего лишь обозначение: вам на самом деле все равно, интерпретируется ли оно препроцессором или самим компилятором., @Edgar Bonet


1 ответ


1

Вы просто добавляете число в двоичном виде с помощью B например B01100100 которое равно 100 в десятичной системе счисления

byte sequence[] = {
    B10000000,
    B01000000,
    B00100000,
    B00010000,
    B00001000,
    B00000100,
    B00000010,
    B00000001
}

И чтобы проверить n-й бит справа в числе, которое вы делаете

boolean bit_set = number & (1 << (n - 1)) != 0;
,