const int dataPin = 2;
const int clockPin = 3;
const int latchPin = 4;
void setup() {
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
}
void loop() {
for (byte i = 0; i < 3; i++) {
byte data = (1 << i); // битовый сдвиг влево
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, data);// отправляет данные в сдвиговый регистр(вывод данныхб вывод тактовой частоты, порядок передачи битов, данные)
digitalWrite(latchPin, HIGH);
delay(500);
}
}
//Вопрос 1
//Аналоговый сигнал - непрерывный сигнал который обрабатывается аналого-цифровым преобразователем микроконтроллера. Это сигнал от 0 до 5 вольт
//Может поступать от датчиков, устройств. АЦП принимает на вход аналоговый и преобразует в цифровой(амплитуда это сигнала)
//Аналоговые сигналы считываются с помощью функции analogWrite. Работа АЦП: Сэмплирование(делается снимок сигнала с определенной частотой), Квантизация
//Сигнал преобразуется в специальный цифровой код. Кодирование(преобразуется в двоичный код и обрабатывается мк). В ардуино АЦП 10 битный т.е. может производить 1024 числа
//Время преобразования АЦП зависит от тактовой частоты микроконтроллера.
//Существует функция map которая позваляет масштабировать полученное значение: на вход пять аргументов: значение, которое нужно преобразовать, минимальное и максимальное
//значения исходного диапазона, а также минимальное и максимальное значения желаемого диапазона.
//Задание 2
//Кроме стандартных функций в библиотеке ардуино существуют и дугие библиотеки для управления внешними устройстввами и считывания с них данных
//Библиотека FastLED и NeoPixel позволяет управлять адресными светодиодами. Библиотека Servo серводвигателем, библиотека wire позволяет управлять устройствами I2C,
//библиотека SPI используется для связи с высокоскоростными устройствами(дисплеи, карты памяти), Adafruit GFX для работы с TFT и сенсорными дисплеями
//для сложных устройств намного практичнее использовать специальные библиотеки