
- •Основные блоки стандартного микроконтроллера с указанием их функций.
- •Отличия архитектур процессоров risc и cisc.
- •Void setup()
- •Void loop()
- •Void setup()
- •Void loop()
- •Void setup()
- •Void loop()
- •Void setup()
- •Void loop()
- •Void setup() {
- •Void loop() {
- •Void setup()
- •Void loop()
- •Void setup()
- •Void loop()
- •Void setup()
- •Void loop()
- •Void setup()
- •Void loop()
- •Void setup()
- •Void loop()
- •Void setup()
- •Void loop()
- •Void setup()
- •Void loop() {
- •Void setup()
- •Void loop()
- •Void setup()
- •Void loop()
- •Void setup()
- •Void loop()
- •Void setup()
- •Void loop()
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);
}