//========================================================//
//   Програма читання аналогового порта                   //
//             Практичне заняття 2                        //
//========================================================//

/* Характеристики модуля АЦП:

    10-бит разрешение преобразования
    Абсолютная погрешность - 2 
    Интегральная нелинейность - 0.5 
    Скорость преобразования 13 - 260 микросекунд
    6 мультиплексированный каналов преобразования
    Встроенный датчик температуры
    Входное напряжение - от 0 до V питания
    Возможность подключить внутренний ИОН 1.1 В
    Независимость от ЦП
    Генерация прерывания по завершению преобразования
    Режим подавления шумов 
    
    analogReference(type)

Устанавливает источник опорного напряжения, использующийся при считывании аналогового сигнала 
(другими словами, задает максимальное значение входного диапазона). Для выбора источника опорного напряжения доступны следующие значения:

    DEFAULT: опорное напряжение по умолчанию, равное 5 В (на 5В-платах Ардуино) или 3.3 В (на 3.3В-платах Ардуино)
    INTERNAL: внутренне опорное напряжение, равное 1.1 В в микроконтроллерах ATmega168 и ATmega328, 
    или 2.56 В в микроконтроллере ATmega8 (не доступно в Arduino Mega)
    INTERNAL1V1: внутреннее опорное напряжение 1.1 В (только для Arduino Mega)
    INTERNAL2V56: внутреннее опорное напряжение 2.56 В (только для Arduino Mega)
    EXTERNAL: в качестве опорного напряжения будет использоваться напряжение, приложенное к выводу AREF (от 0 до 5В)
    */


void setup() // початкові установки
{
  analogReference(DEFAULT);
  Serial.begin(115200);  // початкові установки порта, швидкість 115200 біт/с=бот
  pinMode(A0, INPUT);    // встановлюємо порт А0 як вхідний
}


void loop() // основна програма
{
  int r = analogRead(A1);
  int v=r*5/1023;
  Serial.print(r);
  Serial.print(" ");
  Serial.println(v);
  delay(500);
}