Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчётный лист.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
172.03 Кб
Скачать

Void setup()

{

pinMode(ledPin, OUTPUT);

Serial.begin(9600);

vall = analogRead(potPin);

vall /= 4;

}

Void loop()

{

val = analogRead(potPin);

val /= 4;

analogWrite(ledPin, val);

if ((Serial.available() > 0) && (vall != val)) {

Serial.println(val);

int b = Serial.read();

vall = val;

}

}

На 7 занятии требовалось заставить светодиод гореть, при помощи датчика термистора, и при любом освещении при помощи фоторезистора.

Датчик температуры

int termPin = A5; // Аналоговый пин с термистором

int A[3] = {7, 5, 6};

int t;

Void setup()

{

for (int i = 0; i <= 3; i++) {

pinMode(A[i], OUTPUT);

digitalWrite(A[i], LOW);

}

}

Void loop()

{

t = 400;

for (int i = 0; i<= 3; i++) {

if (analogRead(termPin) < t) {

digitalWrite(A[i], HIGH);

}

t -= 20;

}

delay (100);

t = 400;

for (int i = 0; i<= 3; i++) {

if (analogRead(termPin) > t) {

digitalWrite(A[i], LOW);

}

t -= 20;

}

}

Датчик света

int lightPin = A5; // Аналоговый пин с фоторезистором

int A[3] = {6, 7, 8};

int l;

Void setup()

{

for (int i = 0; i <= 3; i++) {

pinMode(A[i], OUTPUT);

digitalWrite(A[i], LOW);

}

}

Void loop()

{

l = 26;

for (int i = 0; i <=3; i++) {

if (analogRead(lightPin) > l) {

digitalWrite(A[i], HIGH);

} else {

digitalWrite(A[i], LOW);

}

l -= 2;

}

}

На 8 занятии требовалось вывести цифры от 1 до 15 в 16-ричной системе счисления, при помощи индикатора.

Цифры

/*

5-й пин - точка

6-й пин - нижний правый светодиод (c)

7-й пин - нижний светодиод (d)

8-й пин - нижний левый светодиод (e)

9-й пин - верхний правый светодиод (b)

10-й пин - верхний светодиод (a)

11-й пин - верхний левый светодиод (f)

12-й пин - средний свтеодиод (g)

*/

int s = 0;

int pins[8] = {5, 6, 7, 8, 9, 10, 11, 12};

int buttonPin = 2; // пин с кнопкой

boolean lastButtonState = LOW;

boolean state = LOW;

boolean digits[16][7] = {

{1,1,1,1,1,1,0}, //0

{1,0,0,1,0,0,0}, //1

{0,1,1,1,1,0,1}, //2

{1,1,0,1,1,0,1}, //3

{1,0,0,1,0,1,1}, //4

{1,1,0,0,1,1,1}, //5

{1,1,1,0,1,1,1}, //6

{1,0,0,1,1,0,0}, //7

{1,1,1,1,1,1,1}, //8

{1,1,0,1,1,1,1}, //9

{1,0,1,1,1,1,1}, //a

{1,1,1,0,0,1,1}, //b

{0,1,1,0,1,1,0}, //c

{1,1,1,1,0,0,1}, //d

{0,1,1,0,1,1,1}, //e

{0,0,1,0,1,1,1}, //f

};

/*

Процедура, отображающая на индикаторе

определённую цифру

*/

void showDigit(int num)

{

// Пробегаемся по элементам массива digits

// и смотрим, если на i-м месте этого элемента

// стоит 1, включаем соответствующий пин,

// если 0 - выключаем

for (int i = 0; i < 7; i++)

digitalWrite(pins[i+1], digits[num][i]);

}

Void setup()

{

pinMode(buttonPin, INPUT);

// Для каждого светодиода в индикаторе

// инициализируем пин, соответствующий ему,

// как работающий на вывод

for (int i = 0; i < 8; i++)

pinMode(pins[i], OUTPUT);

}