Вы находитесь на странице: 1из 9

Технический Университет Молдовы

Факультет Вычислительной техники, Информатики и


Микроэлектроники

Отчет
по лабораторной работе №2
Предмет: Программирование в электронике

Тема: Аналоговый интерфейс. Измерение напряжения, тока,


сопротивления. Графическое отображение сигналов.

Выполнила ст. гр. MN-192


Бабисанда Серафима

Проверил Бырназ Адриан,


ассистент унив.

Кишинев
2021
Цели работы:
 разработка скетчей Arduino, которые позволяет управлять светодиодами,
применив на практике теоретические знания

Задание:
a. Напишите программу для Arduino, которая будет получать сигнал от
переменного резистора и отображать его пользователю через последовательный
интерфейс.
1. Полученный сигнал будет преобразован в сопротивление и отображаться
пользователю в реальном времени через последовательный интерфейс.
2. Представление мониторинга этого сигнала в программе просмотра
логических сигналов.
3. Должны быть написаны отдельные функции для преобразования цифрового
сигнала в напряжение и напряжение в сопротивление. Разрешено использование
функции map().

Скетч программы:

#define ADC_PIN A1
#define BAUD_RATE 9600
#define Vref 5.0
#define ADCRef 1024.0
#define R 10000.0

void setup()
{
Serial.begin(BAUD_RATE);
Serial.println("Hello, my dear friend!");
Serial.println(" ");

void loop()
{
uint16_t adcValue = 0;
double Voltage = 0;
double Resistance = 0;

adcValue = analogRead(ADC_PIN);
Voltage = adcVoltage(adcValue);
Resistance = VoltageResistance(Voltage);
Serial.print("=> The resistance is equal to ");
Serial.println(Resistance);
}

double adcVoltage(const uint16_t adcValue)


{
return ((Vref / ADCRef) * adcValue);
}
double VoltageResistance (const double Voltage)
{
return (Voltage / Vref * R);
}

Результат:

ARD1
ON
Reset BTN

www.TheEngineeringProjects.com

AREF
13
PB5/SCK
12
PB4/MISO
RESET 11
~ PB3/MOSI/OC2A
10
~ PB2/OC1B
9
~ PB1/OC1A
8
RV1(2) PB0/ICP1/CLKO
ATMEGA328P-PU
1121

7
ANALOG IN

PD7/AIN1
6
A0 ~ PD7/AIN1
5
RV1 A1
PC0/ADC0
~ PD5/T1/OC0B
4
PC1/ADC1
A2 PD4/T0/XCK
3
PC2/ADC2
A3 ~ PD3/INT1/OC2B
2
PC3/ADC3 PD2/INT0
A4
50%

PC4/ADC4/SDA PD1/TXD 1
A5 0
PC5/ADC5/SCL PD0/RXD
RXD
1k
ARDUINO UNO TXD

RTS

CTS
ARD1

ON
Reset BTN

www.TheEngineeringProjects.com
AREF
13
PB5/SCK
12
PB4/MISO
RESET 11
~ PB3/MOSI/OC2A
10
~ PB2/OC1B
9
~ PB1/OC1A
8
RV1(2) PB0/ICP1/CLKO

ATMEGA328P-PU
1121
7

ANALOG IN
PD7/AIN1
6
A0 ~ PD7/AIN1
5
RV1 A1
PC0/ADC0
~ PD5/T1/OC0B
4
PC1/ADC1
A2 PD4/T0/XCK
3
PC2/ADC2
A3 ~ PD3/INT1/OC2B
2
PC3/ADC3 PD2/INT0
A4
15%

PC4/ADC4/SDA PD1/TXD 1
A5 0
PC5/ADC5/SCL PD0/RXD
RXD
1k
ARDUINO UNO TXD

RTS

CTS

ARD1
ON
Reset BTN

www.TheEngineeringProjects.com

AREF
13
PB5/SCK
12
PB4/MISO
RESET 11
~ PB3/MOSI/OC2A
10
~ PB2/OC1B
9
~ PB1/OC1A
8
RV1(2) PB0/ICP1/CLKO
ATMEGA328P-PU
1121

7
ANALOG IN

PD7/AIN1
6
A0 ~ PD7/AIN1
5
RV1 A1
PC0/ADC0
~ PD5/T1/OC0B
4
PC1/ADC1
A2 PD4/T0/XCK
3
PC2/ADC2
A3 ~ PD3/INT1/OC2B
2
PC3/ADC3 PD2/INT0
A4
15%

PC4/ADC4/SDA PD1/TXD 1
A5 0
PC5/ADC5/SCL PD0/RXD
RXD
1k
ARDUINO UNO TXD

RTS

CTS
ARD1

ON
Reset BTN

www.TheEngineeringProjects.com
AREF
13
PB5/SCK
12
PB4/MISO
RESET 11
~ PB3/MOSI/OC2A
10
~ PB2/OC1B
9
~ PB1/OC1A
8
RV1(2) PB0/ICP1/CLKO

ATMEGA328P-PU
1121
7

ANALOG IN
PD7/AIN1
6
A0 ~ PD7/AIN1
5
RV1 A1
PC0/ADC0
~ PD5/T1/OC0B
4
PC1/ADC1
A2 PD4/T0/XCK
3
PC2/ADC2
A3 ~ PD3/INT1/OC2B
2
PC3/ADC3 PD2/INT0
A4
0%

PC4/ADC4/SDA PD1/TXD 1
A5 0
PC5/ADC5/SCL PD0/RXD
RXD
1k
ARDUINO UNO TXD

RTS

CTS

ARD1
ON
Reset BTN

www.TheEngineeringProjects.com

AREF
13
PB5/SCK
12
PB4/MISO
RESET 11
~ PB3/MOSI/OC2A
10
~ PB2/OC1B
9
~ PB1/OC1A
8
RV1(2) PB0/ICP1/CLKO
ATMEGA328P-PU
1121

7
ANALOG IN

PD7/AIN1
6
A0 ~ PD7/AIN1
5
RV1 A1
PC0/ADC0
~ PD5/T1/OC0B
4
PC1/ADC1
A2 PD4/T0/XCK
3
PC2/ADC2
A3 ~ PD3/INT1/OC2B
2
PC3/ADC3 PD2/INT0
A4
75%

PC4/ADC4/SDA PD1/TXD 1
A5 0
PC5/ADC5/SCL PD0/RXD
RXD
1k
ARDUINO UNO TXD

RTS

CTS
ARD1

ON
Reset BTN

www.TheEngineeringProjects.com
AREF
13
PB5/SCK
12
PB4/MISO
RESET 11
~ PB3/MOSI/OC2A
10
~ PB2/OC1B
9
~ PB1/OC1A
8
RV1(2) PB0/ICP1/CLKO

ATMEGA328P-PU
1121
7

ANALOG IN
PD7/AIN1
6
A0 ~ PD7/AIN1
5
RV1 A1
PC0/ADC0
~ PD5/T1/OC0B
4
PC1/ADC1
A2 PD4/T0/XCK
3
PC2/ADC2
A3 ~ PD3/INT1/OC2B
2
PC3/ADC3 PD2/INT0
A4
90%

PC4/ADC4/SDA PD1/TXD 1
A5 0
PC5/ADC5/SCL PD0/RXD
RXD
1k
ARDUINO UNO TXD

RTS

CTS

ARD1
ON
Reset BTN

www.TheEngineeringProjects.com

AREF
13
PB5/SCK
12
PB4/MISO
RESET 11
~ PB3/MOSI/OC2A
10
~ PB2/OC1B
9
~ PB1/OC1A
8
RV1(2) PB0/ICP1/CLKO
ATMEGA328P-PU
1121

7
ANALOG IN

PD7/AIN1
6
A0 ~ PD7/AIN1
5
RV1 A1
PC0/ADC0
~ PD5/T1/OC0B
4
PC1/ADC1
A2 PD4/T0/XCK
3
PC2/ADC2
A3 ~ PD3/INT1/OC2B
2
PC3/ADC3 PD2/INT0
A4
100%

PC4/ADC4/SDA PD1/TXD 1
A5 0
PC5/ADC5/SCL PD0/RXD

1k
ARDUINO UNO
b. Напишите программу для управления встроенным светодиодом с
помощью модуля микрофона, подключенного к контакту, предназначенному
для приема аналогового сигнала.
1. При обнаружении двух последовательных звуков с высоким звуковым
давлением светодиод должен изменить свое состояние.
2. Период от приема первого звука до приема второго звука должен
регулироваться в диапазоне
500 - 2500 мс. Установка периода между сигналами будет производиться
через последовательный интерфейс.
3. Должны быть написаны отдельные функции для реализации каждой
функциональности. Допускается использование функции constrain().

Скетч программы:

#define MICROFON_PIN A0
#define BAUD_RATE 9600
#define V_REF 5.0
#define ADC_REF 1024.0

void setup()
{
Serial.begin(BAUD_RATE);
pinMode(LED_BUILTIN, OUTPUT);
}

void loop()
{
uint16_t adcRaw = 0;
double voltage = 0;
adcRaw = analogRead(MICROFON_PIN);
voltage = adcToVoltage(adcRaw);
Serial.println(voltage);
if (5.0 - voltage < 3.0)
{
toggle(LED_BUILTIN);
}

double adcToVoltage(const uint16_t adcValue)


{
return ((V_REF / ADC_REF) * adcValue);
}

void toggle(const uint8_t led)


{
digitalWrite(led, !digitalRead(led));
if (digitalRead(led))
{
Serial.println(" on!");
}
else
{
Serial.println(" off!");
}
}

Результат:
Выводы:
В ходе выполнения данной лабораторной работы, мы закрепили теоретические
знания пройденные на курсе об аналоговом интерфейсе. Также закрепили
знания на практике путем измерения напряжения, тока, сопротивления. Кроме
того, попытались построить графическое отображение сигналов

Вам также может понравиться