| Ваш IP: 54.152.38.154 | Online(35) - гости: 15, боты: 20 | Загрузка сервера: 0.85 ::::::::::::

Массивы (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);
}

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

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

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

  • Простая ИК-аудио связь

    Вот схема простой ИК-аудио связь, которая может быть использована для передачи аудио сигналов до 4 метров. Сигнала для передачи подается на базу транзистора Q1 через резистор R4. От Q1 усиленный сигнал передается ИК диодами D1 и D2. Передаваемый ИК сигнал будут принят фото-транзистором Q2. Ток эмиттера транзистора Q2 будет меняться …Подробнее...
  • Светодиодные индикаторы (отеч.)

    Светодиодные одноразрядные семи сегментные индикаторы с децимальной точкой, типа АЛС321, предназначены для отображения цифровой информации. Индикаторы АЛС321А-имеют общий катод, АЛС321Б-общий анод. прибор цвет света сила света(мкДж) прямой ток прямое напряжение АЛС321А1 АЛС321Б1 желто зеленый желто зеленый 0,12 0,12 2020 3,6 3,6 Светодиодные семи сегментные индикаторы с децимальной точкой пита АЛС324 …Подробнее...
  • Высоковольтный генератор

    Этот генератор служит источником высоковольтных импульсов для охранной системы ограждения и может служить в качестве уст-ва самозащиты. Генератор вырабатывает импульсы переменного напряжения амплитудой 15-20кВ при напряжении источника питания 12В или 5-6кВ при напряжении питания 4,5-6В. Схема №1 На VT1 выполнен импульсный генератор который вырабатывает импульсы с частотой 500Гц. Частота зависит …Подробнее...
  • Сигнализатор жидкости

    Сигнализатор жидкости

    Сигнализатор жидкости (воды) основан на ИМС NE555 и содержит датчик (зонды) выполненный в виде двух медных оголенных проводов. Расстояние между контактами датчика не должно превышать 10 мм. Применение сигнализатора жидкости разнообразное — датчик уровня воды, датчик наполнения емкости, индикатор утечки воды и др. Схема работает от любого источника питания с …Подробнее...
  • УНЧ на TDA7266

    УНЧ на TDA7266

    Стереофонический мостовой усилитель низкой частоты, специально разработанный для примирения в ТВ приемниках и переносимых приемниках. Напряжение питания 3…18В Мак. потреб. ток 2,0А Ток покоя при Uп=11В 50мА Выходная мощность при КНИ=10% Uп=11В Rн=8Ом — 7Вт КНИ при Uп=11В Rн=8Ом и Р вых менее 2 Вт — 1,0%Подробнее...