
- •Основные блоки стандартного микроконтроллера с указанием их функций.
- •Отличия архитектур процессоров 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(speakerPin, OUTPUT);
}
Void loop() {
for (int i = 0; i < length; i++) {
if (notes[i] == ' ') {
delay(beats[i] * tempo); // rest
} else {
playNote(notes[i], beats[i] * tempo);
}
// pause between notes
delay(tempo / 2);
}
}
На 4 занятии требовалось заставить светодиод плавно затухать, сделать радугу и улучшить её так, что бы она включалась и выключалась по нажатию на кнопку.
Затухание светодиода
int brightness = 0; // изначальная яркость светодиода
int fadeAmount = 45; // скорость затухания/нарастания// яркости
Void setup()
{
// инициализируем пин 9, как работающий на выход
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
}
Void loop()
{
// изменяем яркость светодиода
analogWrite(9, brightness);
analogWrite(10, brightness);
// на каждом шаге увеличиваем яркость
// на скорость затухания
brightness = brightness + fadeAmount;
// в конце затухания меняем его на
// нарастание яркости и наоборот
if (brightness == 0 || brightness == 255)
fadeAmount = -fadeAmount;
delay(30);
for (int x = 1;x <= 10; x++)
delay(30);
// ждём 30 миллисекунд
delay(30);
}
Радуга
int brightness = 255; // текущее значение яркости
int fadeAmount = 5; // скорость затухания
// пины, на которых расположен светодиод
int leds[3] = {9, 10, 11};
// индексы пинов, с которыми мы работаем
// в текущий момент
int curPin[2] = {0, 1};
Void setup()
{
for(int i = 0; i < 3; i++)
pinMode(leds[i], OUTPUT);
}
Void loop()
{
// подаём на два разных пина значение равное
// brightness и 255-brightness
analogWrite(leds[curPin[0]], brightness);
analogWrite(leds[curPin[1]], 255 - brightness);
// уменьшаем значение brightness
// на скорость затухания
brightness = brightness - fadeAmount;
// когда значение brightness становится равным
// нулю, меняем номера пинов, с которыми мы
// работаем
if (brightness == 0) {
curPin[0] = (curPin[0] + 1) % 3;
curPin[1] = (curPin[1] + 1) % 3;
brightness = 255;
}
delay(30);
}
Радуга на кнопку
// состояние светодиода
// пины, на которых расположен светодиод
int leds[3] = {9, 10, 11};
boolean ledState = LOW;
// предыдущее состояние кнопки
boolean lastButtonState = HIGH;
// в текущий момент
int curPin[2] = {0, 1};
Void setup()
{
for(int p = 0;p<3;p++)
pinMode(leds[p],OUTPUT);
pinMode(buttonPin, INPUT);
}
Void loop()
{
boolean reading = digitalRead(buttonPin);
if (reading != lastButtonState) {
delay(100);
reading = digitalRead(buttonPin);
if(reading != lastButtonState){
lastButtonState = reading;
if (reading) {
ledState = !ledState;
for(int i = 0;i<3;i++)
digitalWrite(leds[i],ledState);
}
}
}
if (ledState == HIGH) {
//for(int i = 0;i<3;i++)
//digitalWrite(leds[i],ledState);
analogWrite(leds[curPin[0]], brightness);
analogWrite(leds[curPin[1]], 255 - brightness);
brightness = brightness - fadeAmount;
if (brightness == 0) {
curPin[0] = (curPin[0] + 1) % 3;
curPin[1] = (curPin[1] + 1) % 3;
brightness = 255;
}
delay(30);
} else {
}
}
На 6 занятии требовалось с помощью потенциометра научиться управлять яркостью светодиода.
Яркость
int potPin = A2; // Аналоговый пин с потенциометром
int ledPin = 6; // Цифровой пин со светодиодом
int val = 0; // Значение потенциометра
int vall;