Ардуино - это просто программисткий тулчейн. Можно использовать для чего угодно.
посмотри перевод слова Sketch - это официальный вроде термин из документации. посмотри так же историю выхода продукта на рынок. Посмотри, какие проблемы у людей возникают, здесь, на форуме. Посмотри, насколько сами эти люди грамотны в общем смысле, здесь, на форуме. Посмотри. как они решают указанные проблемы. Это все ардуино.
Чего смотреть то? Система развивается и останавливаться не собирается вроде
приток свежей крови обеспечивается нижайшим в истории человечества порогом образования, необходимым для входа в профессию. А так да, ты прав. НО и АвтоВАЗ тоже развивается)
Получается, что Ардуино пользователи заведомо ущербные? Т.е., ты не пользующийся Ардуино экосистемой, уже на ступень выше. А ничё, что некоторые из этой Ардуины тебя в бараний рог согнут? Скажи, ЕвгенийП? Да и не только.
А мне не жалко, пущай притокаются ))
Зы: программирование таки - это не про языки и не про тулчейны, кому действительно надо, найдет куда и как двигаться. А начинать все равно как-то надо ))
ну это ты написал. не я)
ПС ЕвгенийП не любит обращения на ты.
абсолютно верно, согласен. Вопрос - зачем это в продакшен тащить? чтобы потом с делеями играться?
Почему бы и нет?
ну законы природы не нарушаются при этом, да, поцчему бы и нет)
Для чего-то массового Ардуино может и не лучший вариант, но вот что-то единичное, типа там для технологии и тп чертовски удобно. Натыкал проводки - напрограмил побыстрому - спаял чтобы надежно было - готово. Причем если чего сгорело то платы стандартные, и заказывать не надо.
А уж для себя игрушки это вообще раздолье. Метеостанции вон какие можно делать! ахаха.
Вместо миллис использовать микрос при задержках?
Попробовал ещё на rp2040 - те же пропуски нажатий кнопки при использовании адафрукт нео пиксель.
…терпение лопнуло - сделал аппаратное разделение, оно заработало без сбоев.
Кстати на rp2040 два ядра и скетч по идее можно тоже по ядрам разделить
…скетч для ядра (про мини) ИК приёмника
/////////////////////////// тест с дистанционным управлением через ИК пульт на про мини 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, помоему, в качестве микроконтроллера. Надо подождать, пока ксионы с гипертредингом приобретут статус МК, точняк.