Программирование

Вопросы по программированию Arduino.

Битовые операции с радиоэфиром

Здравствуйте,

Подскажите, пожалуйста, как правильнее сделать то, что я хочу?

У меня есть входящий поток нулей и единиц (это выход из компаратора) и представляет собой оцифрованный радиосигнал.

Этот входящий поток нулей и единиц я расцениваю как биты и мне нужно его проверить на целостность (CRC). Длина входящего сообщения известна заранее и составляет, допустим, N бит.

CRC основана на битовой операции XOR.

И вот вопрос: в каком виде мне лучше оформлять входящий поток нулей и единиц, чтобы проще его было отXORить: unsigned char, byte, String, int?

Как запоминать состояние светодиода ?

if (i == 1)  //вспомогательная переменная для перехода на управление светодиодом 1.
  {
    potent_led1 = potent_led; //изменение частоты мерцания светодиода 1 при помощи потенциометра
    if (micros() - lastMicros > potent_led1 && digitalRead(2) == LOW)
    {
      lastMicros = micros();
      digitalWrite(2, HIGH);
    }
    if (micros() - lastMicros > potent_led1 && digitalRead(2) == HIGH)
    {
      lastMicros = micros();
      digitalWrite(2, LOW);
    }

Arduino и MP3 плеер. Нужна помощь

Доброго всем дня!

Прошу помощи!

Есть такая задача, есть МП3 плеер и ардуино

В общем надо сделать так, что бы при включении ардуины она давала команду плееру включится (включается он кнопкой PLAY), о том, что он включился можно понять по напряжению на подсветке дисплея,

включается он нажатием на кнопку PLAY 1-2 сек., затем нужно подождать 5-6 секунд и подать еще одну короткую команду на кнопку PLAY (0,1 сек), что б перевести его в режим

Синус 10кГц

Здравствуйте. Подскажите пожалуйста, можно ли программно решить такую задачку на ардуино уно:

1. Синус 10 кГц

2. ШИМ с регулируемой скважностью (переменник) 500 Гц

3. Снятие синуса с внешней обмотки и сравнение с синусом генерируемым ардуинкой.

Зарание всем спасибо)

Задание переменной через Serial.port

Помогите сделать программу так что бы переменная val бегала по циклу до следующего изменения значения , а не только один раз как сейчас .
int ledPin = 13;
void setup()
{
Serial.begin(9600);
pinMode(ledPin,OUTPUT);
}

void loop() {
while(Serial.available() == 0);
int val = Serial.read()-'0';

digitalWrite(13, HIGH);
delay(val);
digitalWrite(13, LOW);
delay(1000);
}

Помогите с кодом еепром

Ребят помогите с кодом еепром
кину на телефон пару соток)))

 

1) Сделать так чтобы в коде была прямая запись в еепром (не через строку монитора порта) к примеру - 333333
 

toCharArry нюансы работы.

Нигде нет инфы, что в точности происходит, если скажем я указываю длину массива для .toCharArry в десять символов, а переменная String содержит скажем сто символов. Поэтому вопрос, - как в точности, происходит данное преобразование? Берется каждый следующий символ, и помещается в масив, в ячейку +1, n раз, где n - указанный размер массива?

И если не влом, - как наиболее простым способом, разбить переменную класса String заданной, четко известной длинны(ну пусть 17 символов), на скажем три последовательно заполненных массива типа char длинной 12,2,3?

Нагляднее:

Как упростить код

Доброго времени суток.

Я совсем новичок в этом деле (программирование), но и все же, смог переписать готовый код под свои колличества и свои нужды. Теперь у меня вопрос, наверно можно "упростить" столь громоздкий код? какими командами мне необходимо это осуществить? Что надо дописать (какие команды), чтобы после перезагрузки, сбой в питании, сервомотры запоминали свою текущую позицию? Спасибо

Нужна помощь с if



Вот блок кода:
 
  
  butt_led1 = !digitalRead(6);
  butt_led2 = !digitalRead(7);
  butt_led3 = !digitalRead(8);
  Serial.println(i);
  ////
  if(butt_led1 == 1 && butt_led1_flag == 0)
  {
    i++;
    butt_led1_flag = 1;
  }
  if(butt_led2 == 1 && butt_led2_flag == 0)
  {
    i++;
    butt_led2_flag = 1;
  }
  if(butt_led3 == 1 && butt_led3_flag == 0)
  {
    i++;
    butt_led3_flag = 1;
  }
  ////

Счётчик с интервалом

Здравствуйте коллеги. Прошу помощи в написании кода для ардуино так как я новичок и только учусь писать скетчи. Нужно сделать счётчик от  до 0 с -1 через каждый 2000мкс или направьте на похожую тему если таковой есть в форуме