| Ваш IP: 3.231.220.225 | Online(28) - гости: 21, боты: 7 | Загрузка сервера: 0.64 ::::::::::::


Массивы (Arduino)

Массив — это набор переменных, доступ к которым осуществляется по индексу. В данной статье будут рассмотрены одномерные массивы, а так же способы их создания и вывода элементов массива.

Способы создания массивов:

int arr_1[] = {1,3,25,18,44};
int arr_2[5] = {18,39,253,185,44};
char arr_3[6] = {"hello"};

В данном примере видно, что можно не указывать размер массива компилятор сам посчитает элементы и создаст массив соответствующего размера. Следует помнить, что при объявлении массива типа char, в нем необходимо место для хранения обязательного нулевого символа, поэтому размер массива должен быть на один символ больше, чем требует инициализируемое значение.

Массив может быть так же создан в процессе выполнения программы, в следующем примере показано как создать такой массив:

void setup(){
}

int arr[100];// объявим массив, укажем кол-во элементов

void loop(){

  for(int i = 0; i < 100; i++){ // в массиве будет 100 элементов
    arr[i] = random(10000); // заполним массив случайными числами
  }
}

Любой элемент массива может быть изменен в процессе выполнения программы, вот простой пример:

void setup(){
}

int arr[5] = {11,58,25,63,78};// объявим массив, укажем кол-во элементов

void loop(){
  
 arr[0] = 0
 
}

Как видно в примере, содержимое элемента массива с ключом [0] было заменено.

Вывод элементов массива:

void setup(){
}

int arr[] = {11,58,25,63,4567};// объявим массив, укажем кол-во элементов

void loop(){

 int arr[3]; // 63
  
}

В данном примере видно что элемент arr[3] содержит число 63, а не 25, так отсчет элементов массива начинается с 0.

Элементы массива можно вывести при помощи цикла for:

void setup(){
  Serial.begin(9600);
}

int arr[] = {11,58,25,63,4567};// объявим массив, укажем кол-во элементов

void loop(){

  for(int i=0; i < 5; i++){  
 
  Serial.println(arr[i]); 

 }
  
}

Оператор sizeof удобно использовать при работе с массивами, особенно в тех случаях, когда размерность массива заранее неизвестна или может меняться:

void setup(){
  Serial.begin(9600);
}

int arr[] = {11,58,25,63,4567};// объявим массив, укажем кол-во элементов
char arr_char[]= "arduino";
int a,b;
void loop
(){

  /* Оператор sizeof возвращает количество байт, занимаемых 
   типом переменной, либо количество байт, занимаемых массивом. */

  a = sizeof(arr)/sizeof(int);// вывод 5
  b = sizeof(arr_char)-1;// вывод 7

  for(int i=0; i < sizeof(arr) / sizeof(int); i++)
  {  // цикл for выведет поочередно все элементы массива
    Serial.println(arr[i]);
  }
  Serial.println(a);
  Serial.println(b);
}

Добавить комментарий

Войти с помощью: 

Случайные статьи

  • РЕЛЕ ВРЕМЕНИ

    Реле времени предназначены для коммутации электрических цепей устройств с заданной временной выдержкой. Описываемые реле времени не содержат сетевого трансформатора, поэтому позволяют значительно снизить их массу и габаритные размеры. При налаживании и эксплуатации реле необходимо соблюдать меры предосторожности, так как цепи и элементы этих устройств находятся под сетевым напряжением. Если же …Подробнее...
  • Бинауральный преобразователь

    Бинауральный преобразователь

    Бинауральный преобразователь — устройство значительно снижающее эффект локализации кажущихся источников звука в голове слушателя и уменьшает неестественное резкое разделение каналов, что обычно возникает при прослушивании стерео фонограмм через стерео телефоны(наушники). Такой преобразователь приближает качество воспроизведения через головные телефоны к качеству воспроизведения через АС. Характеристики бинауральный преобразователя: Номинальное входное напряжение 0,8В …Подробнее...
  • Цифровой автосторож на двух микросхемах

    Данное уст-во предназначено для установки в автомобиле ВАЗ-2107, но его без особых изменений можно установить на любой отечественный или зарубежный автомобиль. Автосторож работает так: после включения питания тумблеров из салона автомобиля следует выдержка 15-20 секунд, в течении этого времени автосторож не реагирует на замыкание контактных датчиков(дверные выключатели внутри салонного освещения). …Подробнее...
  • Блок бесперебойного питания

    Блок бесперебойного питания

    Блок бесперебойного питания обеспечивает выходную мощность до 220 Вт. В схеме (см. рисунок) и напряжение свинцового автомобильного аккумулятора GB1 приложено к задающему генератору на микросхеме DD1 частотой 50 Гц, который раскачивает мощные ключевые транзисторы, попеременно прикладывающие 12 В к обмоткам Ia и Iб повышающего трансформатора Т2. С вторичной обмотки Т2 …Подробнее...
  • Радиоприемник УКВ с ЧМ в диапазоне частот 64-108 МГц и низковольтным питанием

    Приемник работает в диапазоне 64-108 МГц и имеет чувствительность не хуже 5 мкВ/м. Номинальное напряжение питания — 3 В. Весь высокочастотный тракт, включая ЧМ детектор, УВЧ и гетеродин, собран на одной специализированной микросхеме DA1 типаК174ХА34. Эта микросхема представляет собой УВЧ смеситель, гетеродин, УПЧ, усилитель-ограничитель, ЧМ детектор, системы шумопонижения и сжатия …Подробнее...