Ви не увійшли.
Сегодня заберу свой пк с visualsrudio. Работаю неделю на подменном попробуют в среде C#/
Это контрольный выстрел в мой раненый мозг...
Сегодня заберу свой пк с visualsrudio. Работаю неделю на подменном попробуют в среде C#/
https://doc.arduino.ua/ru/prog/Array
ничего нового не узнал. Все как на шарпе
Ну, если так, то после
int arr [7]; //определяем массив на 8 элементов
arr[i - 12] = digitalRead(i); //здесь в делаю сдвиг в массиве и благодаря этому чтение начинается с 12 пина
Тебе трудно помочь.
Кстати, на шарпе это тоже никак работать не может.
https://doc.arduino.ua/ru/prog/Array
ничего нового не узнал. Все как на шарпе
Может я не правильно выразился. i перебирает коллекции массива и с помощью цикла for сравнивает их с нынешним состоянием портов
pinMode(i, INPUT); //создаю переменную i для хранения в ней значения при чтении данных из цикла
тут мой мозг поломался ...  
int arr [7]; //определяем массив на 8 элементов
arr[i - 12] = digitalRead(i); //здесь в  делаю сдвиг в массиве  и благодаря этому чтение начинается с 12 пина
https://doc.arduino.ua/ru/prog/DigitalRead
Читаем внимательно до просветления !!!
int arr [7]; //определяем массив на 8 элементов
https://doc.arduino.ua/ru/prog/Array
Читаем внимательно до просветления !!!
Может естьсреда разработки как для C# типа visual studio? Для запуска программы в дебаге и ловли ошибок?
Прошу прощения. Код правильно отредактировал . Вот:
#include "IRremote.h"  // Подключаю библиотеку для работы с ик пультом
IRrecv irrecv(8);      // назначаю вывод ик приёмника на пин 8 ардуино
decode_results results;  //сохраняю результат с ИК приёмника в переменную results
int led1=0;                    // в этой переменной хранится состояние  вкл/выкл сигнализации
int arr [7]; //определяем массив на 8 элементов
void setup() {             //определяю порты ввода
   pinMode( A0, INPUT);
 pinMode( A1, INPUT);
 pinMode( A2, INPUT);
 pinMode( A3, INPUT);
 pinMode( A4, INPUT);
 pinMode( A5, INPUT);
 pinMode( 13, INPUT);
 pinMode( 12, INPUT);
 
pinMode( 3, OUTPUT);     //Пин сирены в состояние вывода 
pinMode( 8, INPUT);       //Пин ИК датчика в режим входа 
  Serial.begin(9600);     //Выставляю скорость Serial порта
  irrecv.enableIRIn();    //Включаю ИК порт
  
  for (int i = 12; i <= 19; i++)  // Создаю цикл который один раз при включении опрашивает порты от 19 до  12
  {
    pinMode(i, INPUT);  //создаю переменную i для хранения в ней значения при чтении данных из цикла 
    arr[i - 12] = digitalRead(i); //здесь в  делаю сдвиг в массиве  и благодаря этому чтение начинается с 12 пина
  }
}
void loop() {
  if ( irrecv.decode( &results )) { 
    Serial.println(results.value, HEX);   //вывожу данные в 16-ричной системе исчисления
    
if (results.value==0xFF30CF&&led1==0){    //если данные совпадают и сигнализация выключена - включить её. При включении  
   for (int i = 12; i <= 19; i++)                      // запускается цикл который постоянно опращивает эти порты и если он видит отличие
  {                                                              // срабатывает сирена
    if (arr[i - 12] != digitalRead(i))
    {
      digitalWrite( 3, HIGH );led1=1;results.value=0; //включаем сирену и вызываем спецназ
   
    }
  }
  }
if (results.value==0xFF30CF&&led1==1){
      digitalWrite( 3,  LOW  );led1=0;results.value=0; //включаем сирену и вызываем спецназ
    
}  
 irrecv.resume();   // ожидаем следующий сигнал с ИК приёмника
  }
  
}int arr [7]; //определяем массив на 8 элементов
for (int i = 0; i <= 8; i++) 
arr[i - 8] = digitalRead(i);
объясните это !?!
Прошу прощения. Не было времени для описания.
Вот время снова появилось и решил продолжить проект.
Так и не получается  добиться результата.
Подскажите где ошибка?
#include "IRremote.h"  // Подключаю библиотеку для работы с ик пультом
IRrecv irrecv(12);
decode_results results;
int led1=0;
int arr [7]; //определяем массив на 8 элементов
void setup() {
   pinMode( 0, INPUT);
 pinMode( 1, INPUT);
 pinMode( 2, INPUT);
 pinMode( 3, INPUT);
 pinMode( 4, INPUT);
 pinMode( 5, INPUT);
 pinMode( 6, INPUT);
 pinMode( 7, INPUT);
 
pinMode( 13, OUTPUT);
pinMode( 12, INPUT);
  Serial.begin(9600);
  irrecv.enableIRIn();
  
  for (int i = 0; i <= 8; i++)
  {
    pinMode(i, INPUT);
    arr[i - 8] = digitalRead(i);
  }
}
void loop() {
  if ( irrecv.decode( &results )) { 
    Serial.println(results.value, HEX);
    
if (results.value==0xFF30CF&&led1==0){
   for (int i = 0; i <= 8; i++)
  {
    if (arr[i - 8] != digitalRead(i))
    {
      digitalWrite( 13, HIGH );led1=1;results.value=0; //включаем сирену и вызываем спецназ
   
    }
  }
  }
if (results.value==0xFF30CF&&led1==1){
      digitalWrite( 13,  LOW  );led1=0;results.value=0; //включаем сирену и вызываем спецназ
    
}  
 irrecv.resume();   
  }
  
}А нет, вот указано
После того как он опросил порты и присвоил их значение(высокий или низкий уровень) переменным ,он(микроконтроллер) должен и дальше следить за состоянием портов и если какой либо из них изменит своё состояние(с высокого на низкий уровень или на оборот), то на исходящем пине d4 - d9(например) будет высокий уровень сигнала. Вторая кнопка пульта отключает ардуино (т.е. при её нажатии как по типу сигнализации первая кнопка включает слежение за портами , а вторая отключает
т.е. все-таки ТС пофиг какой порт сработал.
А потом что? Если ещё один элемент не равен? Ещё раз включаем и вызываем?
А потом ничего. Я дал пример как можно. ТС же сказал
Код я потом оформлю сам.
Вот пусть и оформляет как ему нужно. Мой ХШ на каникулах. Я не знаю нужно ли ТС реагировать на каждый сигнал по отдельности или пофиг какой сработал, главное чтобы заорало.
for (int i = 14; i <= 19; i++) { if (arr[i - 14] != digitalRead(i)) { //включаем сирену и вызываем спецназ } }
А потом что? Если ещё один элемент не равен? Ещё раз включаем и вызываем?