В детскую часы на 2812 8х8 и пульт

Ардуино - это просто программисткий тулчейн. Можно использовать для чего угодно.

посмотри перевод слова Sketch - это официальный вроде термин из документации. посмотри так же историю выхода продукта на рынок. Посмотри, какие проблемы у людей возникают, здесь, на форуме. Посмотри, насколько сами эти люди грамотны в общем смысле, здесь, на форуме. Посмотри. как они решают указанные проблемы. Это все ардуино.

Чего смотреть то? Система развивается и останавливаться не собирается вроде

приток свежей крови обеспечивается нижайшим в истории человечества порогом образования, необходимым для входа в профессию. А так да, ты прав. НО и АвтоВАЗ тоже развивается)

Получается, что Ардуино пользователи заведомо ущербные? Т.е., ты не пользующийся Ардуино экосистемой, уже на ступень выше. А ничё, что некоторые из этой Ардуины тебя в бараний рог согнут? Скажи, ЕвгенийП? Да и не только.

А мне не жалко, пущай притокаются ))

Зы: программирование таки - это не про языки и не про тулчейны, кому действительно надо, найдет куда и как двигаться. А начинать все равно как-то надо ))

1 лайк

ну это ты написал. не я)
ПС ЕвгенийП не любит обращения на ты.

абсолютно верно, согласен. Вопрос - зачем это в продакшен тащить? чтобы потом с делеями играться?

Почему бы и нет?

ну законы природы не нарушаются при этом, да, поцчему бы и нет)

Для чего-то массового Ардуино может и не лучший вариант, но вот что-то единичное, типа там для технологии и тп чертовски удобно. Натыкал проводки - напрограмил побыстрому - спаял чтобы надежно было - готово. Причем если чего сгорело то платы стандартные, и заказывать не надо.
А уж для себя игрушки это вообще раздолье. Метеостанции вон какие можно делать! ахаха.

Вместо миллис использовать микрос при задержках?

Попробовал ещё на rp2040 - те же пропуски нажатий кнопки при использовании адафрукт нео пиксель.
…терпение лопнуло - сделал аппаратное разделение, оно заработало без сбоев.


Кстати на rp2040 два ядра и скетч по идее можно тоже по ядрам разделить :slight_smile:
…скетч для ядра (про мини) ИК приёмника :slight_smile:

/////////////////////////// тест с дистанционным управлением через ИК пульт на про мини 168
#define plus 4 //
#define minus 3 //
int IK_PIN = 2;        //Пин подключения выходного сигнала с ИК-приёмника
volatile word keycode_ = 0;// переменная хранения кода кнопки

void setup()
{
 Serial.begin(9600); 
 pinMode(plus,OUTPUT);//
digitalWrite(plus,HIGH);// плюс питания ик приёмника
pinMode(minus,OUTPUT);//
digitalWrite(minus,LOW);// минус питания ик приёмника
pinMode(13,OUTPUT);//сигнал на получение правильного кода кнопок
digitalWrite(13,LOW);//
pinMode(IK_PIN, INPUT);  // ir recv
attachInterrupt(0, irread, FALLING);
///////////////////////////////////
}
void loop()
{
  keypressed();
  delay(200);
  digitalWrite(13,LOW);//сигнал о верном коде кнопки 
}
/////////////////////////////////////////
void irread() {
volatile static byte n = 0;
volatile static word keycode = 0;
volatile static unsigned long tm = 0;
volatile static unsigned long last = 0;

  tm = micros() - last; 
  last = micros();
  n += 1;
  if (tm > 3000) {
    keycode = 0;
    n = 0;
    }
  if (n >8&&n<=32) {
    if (tm > 1500) {keycode += 1;}
    keycode = keycode << 1;
  }
  if(n==32){keycode_ = keycode;keycode = 0;n=0;}
}
//////////////////////////////////////////
void keypressed() {
 if(keycode_!=0){
  digitalWrite(13,HIGH);// включаем светодиод если получен код 
 // Serial.println(keycode_, HEX);// печатаем код кнопки 
  //код по обработке значений keycode_
   switch (keycode_) {
    case 0x906E:
    Serial.print("0\n");
     break;
    case 0x51AE:
   Serial.print("1\n");
     break;
   case 0x50AE:
    Serial.print("2\n");
     break;
    case 0xD12E:
    Serial.print("3\n");
     break; 
      case 0xC03E:
     Serial.print("4\n");
      break; 
       case 0xA15E:
     Serial.print("5\n"); 
      break;
      case 0x817E:
     Serial.print("6\n"); 
      break; 
      case 0x40BE:
     Serial.print("7\n");
      break; 
    case 0x619E:
      Serial.print("8\n");
      break;    
      default:
     delay(30); digitalWrite(13,LOW);//сигнал о неверном коде кнопки   
    }
  keycode_ = 0;
   }  
 }
//////////////////////////////////////////////


ТС, обратите внимание, volatile

меняет ситуацию.

Да, нет, вместо делэй использовать миллис или микрос, что удобнее.

В общем произвёл успешное ядерное расщепление вывода данных на ленту и обработку получаемых данных с приёмника ИК - на базе RP2040. Переменные, используемые в обоих лооп объявил как volatile.

на двухядерном камне попроще, да?

Попроще в логике работы - пиксели мигают отдельно, человек жмёт кнопки отдельно, общее это переменные-параметры мигания. Там где нужна будет синхронная работа частей вряд ли будет проще.

А если вдруг понадобится ещё один датчик, добавить ещё ядро.

И вообще, для управления светом в сортире надо сразу брать Frontier – там 8,7 миллиона ядер - на всё хватит, а когда, с ростом хотелок, перестанет хватать, там что-нибудь ещё появится.

мне тут обещали сгибание в бараний рог, в вашем личном исполнении, за подобные (саркастические) высказывания.

Мне кажется ардуино придёт к многоядерности за 200р. Надо подождать:) И да, основная проблема будет - помогите не хватает ядер.
Библиотеки перейдут в категорию межъядерных…красота.

ага. интел выпускала 486 процессор года до 2005, помоему, в качестве микроконтроллера. Надо подождать, пока ксионы с гипертредингом приобретут статус МК, точняк.