рдбрд┐рдЬрд┐рдЯрд▓ рд▓реИрдм рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХрд┐рдЯ NR05 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ , рд╣рдордиреЗ рдирд┐рд░реНрдорд╛рдг рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ, рдХрд┐рдЯ рд░рдЪрдирд╛ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдмреЛрд░реНрдб рдХреА рд░реВрдкрд░реЗрдЦрд╛ рджреАред рдЕрдм рд╣рдо рдХрд┐рдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕рд╣рд╛рдпрддрд╛ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗ рдФрд░ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛рд░реНрдб рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рджреЛ рд╕рд░рд▓ рдЕрдиреБрднрд╡реЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдмрд╛рд╣рд░реА рдбрд┐рд╡рд╛рдЗрд╕ рдХреИрд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ рдФрд░ рдмрд┐рд▓реНрдЯ-рдЗрди рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдФрд░ рд╕реНрдХреЗрдЪ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрдВред
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд╣рд╛ рд╣реИ, рдмреЛрд░реНрдб рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдмрд╛рд╣рд░реА рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрдЯрд░реНрд╕ рдХреЗ рд╕рдореВрд╣ рд╣реИрдВ: рд╕реЗрдВрд╕рд░, рдПрдХреНрдЪреБрдПрдЯрд░ рдФрд░ рдХреБрдЫ рдорд╛рдирдХ рд╕реВрдЪрдирд╛ рдмрд╕реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбрд┐рд╡рд╛рдЗрд╕редрдПрдХ рдкреНрд░реЗрд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдмреИрдХрд▓рд╛рдЗрдЯ рдХреЗ рд╕рд╛рде рд▓рд┐рдХреНрд╡рд┐рдб-рдХреНрд░рд┐рд╕реНрдЯрд▓ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рджреЛ-рд▓рд╛рдЗрди рдПрд▓рд╕реАрдбреА рд╕рдВрдХреЗрддрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЛрд░реНрдб рдкрд░ рдПрдХ рдЬрдЧрд╣ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рдВрдХреЗрддрдХ рдкрд░, рд╢реИрдХреНрд╖рд┐рдХ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рджреЛрдиреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдХрд┐рдЯ рдХреЛ рддреИрдпрд╛рд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордпред рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдореИрдиреБрдЕрд▓ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдЬрд╛рдирдХрд╛рд░реА рдХреИрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рдП, рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд░реВрд╕реА рдФрд░ рдЕрдВрдЧреНрд░реЗрдЬреА рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╡рд┐рд╡рд░рдгрд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рд╡рд░рдгрд┐рдХрд╛ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд▓рдЧрднрдЧ рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрд╕рд░рд▓рддрдо рдПрдХреНрдЯреНрдпреВрдПрдЯрд░ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ - рдПрдХ рдПрд▓рдИрдбреАред рд╕реЗрдЯ рдореЗрдВ рдПрдХ рддреНрд░рд┐-рд░рдВрдЧ (рдЖрд░рдЬреАрдмреА - рд▓рд╛рд▓, рд╣рд░рд╛, рдиреАрд▓рд╛) рдЙрдЬреНрдЬреНрд╡рд▓ рдПрд▓рдИрдбреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдПрд▓рдИрдбреА рдХреЗ рддреАрди рд░рдВрдЧреЛрдВ рдореЗрдВ рд╕реЗ, рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреА рддреАрд╡реНрд░рддрд╛ рдХреЛ рдмрджрд▓рдХрд░, рдорд╛рдирд╡ рдЖрдВрдЦ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг, рдХреЛрдИ рднреА рд░рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд░рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдПрдбрд┐рдЯрд┐рд╡ рдХрд▓рд░ рдорд┐рдХреНрд╕рд┐рдВрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯреАрд╡реА рдФрд░ рдореЙрдирд┐рдЯрд░ рдореЗрдВред рддреАрди рд░рдВрдЧреЛрдВ рдХреЛ рд╕рдорд╛рди рдЕрдиреБрдкрд╛рдд рдореЗрдВ рдорд┐рд▓рд╛рдХрд░, рд╣рдореЗрдВ рдПрдХ рд╕рдлреЗрдж рд░рдВрдЧ рдорд┐рд▓рддрд╛ рд╣реИред
рд╣рдо рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛рд░реНрдб рдкрд░ XP15 рдХрдиреЗрдХреНрдЯрд░ рдХреЛ рдПрд▓рдИрдбреА рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рдЪрд╛рд░ рддрд╛рд░реЛрдВ рдпрд╛ рдПрдХ рдПрдбреЗрдкреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ "RGB_LED" рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХреИрдереЛрдб (рд╕рд╛рдорд╛рдиреНрдп "рдорд╛рдЗрдирд╕") рдХреЗ рд╕рд╛рде рдПрдХ рдПрд▓рдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдмрд╕реЗ рд▓рдВрдмрд╛ рдПрд▓рдИрдбреА рдЖрдЙрдЯрдкреБрдЯ GND ("рдЧреНрд░рд╛рдЙрдВрдб") рдЯрд░реНрдорд┐рдирд▓ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ, рдФрд░ рд╢реЗрд╖ рдПрд▓рдИрдбреА рдЖрдЙрдЯрдкреБрдЯ RED / D5 (рд▓рд╛рд▓), BLUE / D6 (рдиреАрд▓рд╛), GREEN рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ / рдбреА 9 (рд╣рд░рд╛)ред
D5, D6 рдФрд░ D9, Arduino рдбрд┐рдЬрд┐рдЯрд▓ рдкрд┐рди рд╣реИрдВ, рдЬрд┐рд╕ рдкрд░ рдЖрдк рдПрд▓рдИрдбреА рдХреА рдЪрдордХ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд▓реНрд╕ рдЪреМрдбрд╝рд╛рдИ рдореЙрдбреНрдпреВрд▓реЗрд╢рди (PWM) рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдореИрдиреБрдЕрд▓ рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдо PWM рд╕рд┐рджреНрдзрд╛рдВрдд рдФрд░ Arduino рдореЗрдВ рдЗрд╕ рдореЙрдбреБрд▓рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдкреНрд░реЛрдЧреНрд░рд╛рдо (рд╕реНрдХреЗрдЪ) рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╣реИ рдЬреЛ RGB LED рдХреА рдЪрдордХ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ:рд╕реНрдкреЙрдЗрд▓рд░
int redPin = 5;
int greenPin = 9;
int bluePin = 6;
void setup()
{
}
void loop() {
for(int value = 0 ; value <= 255; value ++) {
analogWrite(redPin, 255-value);
analogWrite(greenPin, value);
analogWrite(bluePin, 0);
delay(30);
}
for(int value = 0 ; value <= 255; value ++) {
analogWrite(redPin, 0);
analogWrite(greenPin, 255-value);
analogWrite(bluePin, value);
delay(30);
}
for(int value = 0 ; value <= 255; value ++) {
analogWrite(redPin, value);
analogWrite(greenPin, 0);
analogWrite(bluePin, 255-value);
delay(30);
}
}
рдЬрдм рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд▓ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдПрд▓рдИрдбреА рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рд░рдВрдЧ рдХреЛ рд▓рд╛рд▓ рд╕реЗ рд╣рд░рд╛, рдлрд┐рд░ рд╣рд░реЗ рд╕реЗ рдиреАрд▓реЗ рдФрд░ рдлрд┐рд░ рдиреАрд▓реЗ рд╕реЗ рд▓рд╛рд▓ рд╕реЗ рдмрджрд▓ рджреЗрддрд╛ рд╣реИредрд╣рдо рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреВрд░рдХ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдПрд▓рд╕реАрдбреА рдкреНрд░рддреНрдпреЗрдХ рд░рдВрдЧ рдХреЗ рдЪрдордХ рдХреЗ рдЕрдиреБрд░реВрдк рдореВрд▓реНрдпреЛрдВ рдХреЛ рдиреНрдпреВрдирддрдо (0) рд╕реЗ рдЕрдзрд┐рдХрддрдо (255) рд╕рдордп рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд╖рдг рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдмрд┐рдЧрд╛рдбрд╝рдиреЗ рдХреЗ рддрд╣рдд рд╕рдВрд╢реЛрдзрд┐рдд рдХреЛрдб рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИредрд╕реНрдкреЙрдЗрд▓рд░
int redPin = 5;
int greenPin = 9;
int bluePin = 6;
int pwmRed;
int pwmGreen;
int pwmBlue;
#include <LiquidCrystalRus.h>
#include <LiquidCrystalExt.h>
#include <LineDriver.h>
LiquidCrystalRus lcd(A1, A2, A3, 2, 4, 7);
void setup()
{
lcd.begin(16, 2);
lcd.print(" RED GREEN BLUE");
}
void loop() {
for(int value = 0 ; value <= 255; value ++) {
pwmGreen = value;
pwmRed = 255 - value;
analogWrite(redPin, pwmRed);
analogWrite(greenPin, pwmGreen);
analogWrite(bluePin, 0);
delay(30);
Display();
}
for(int value = 0 ; value <= 255; value ++) {
pwmBlue = value;
pwmGreen = 255 - value;
analogWrite(redPin, 0);
analogWrite(greenPin, pwmGreen);
analogWrite(bluePin, pwmBlue);
delay(30);
Display();
}
for(int value = 0 ; value <= 255; value ++) {
pwmRed = value;
pwmBlue = 255 - value;
analogWrite(redPin, pwmRed);
analogWrite(greenPin, 0);
analogWrite(bluePin, pwmBlue);
delay(30);
Display();
}
}
void Display(){
lcd.setCursor(0,1);
lcd.print(" ");
lcd.setCursor(1,1);
lcd.print(pwmRed);
lcd.setCursor(6,1);
lcd.print(pwmGreen);
lcd.setCursor(11,1);
lcd.print(pwmBlue);
}
рдЕрдм рдЖрдЗрдП рдмреЛрд░реНрдб рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдмрдЯрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред
рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдмрдЯрди рдПрдХ рдЕрд▓рдЧ Arduino рдбрд┐рдЬрд┐рдЯрд▓ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдпреЗ рдЖрдЙрдЯрдкреБрдЯ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдмрдЯрди рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред Arduino рдХреЗ рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдбрд┐рдЬрд┐рдЯрд▓ рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛ рд╕реЗрдЯ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдмреЛрд░реНрдб рдореЗрдВ рдмрдЯрди рдкреНрд░реЗрд╕ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдПрдХ "рдПрдирд╛рд▓реЙрдЧ" рдХреАрдмреЛрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ Arduino рдПрдирд╛рд▓реЙрдЧ рдЗрдирдкреБрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рдШрд░реЗрд▓реВ рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдо рд╡реЛрд▓реНрдЯреЗрдЬ рд╡рд┐рднрдХреНрдд рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдЖрдЙрдЯрдкреБрдЯ рд╡реЛрд▓реНрдЯреЗрдЬ рдХреЛ рдорд╛рдкрддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдмрдЯрди рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдореИрдиреБрдЕрд▓ рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдбрд┐рд╡рд╛рдЗрдбрд░ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдФрд░ рдХреАрдмреЛрд░реНрдб рдореЗрдВ рдЗрд╕рдХреЗ рдЖрд╡реЗрджрди рдХреА рд╡рд┐рдзрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдмрдЯрди рдХреЛ рдПрдХ рдмрд╛рд░ рдореЗрдВ, рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рджрдмрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредArduino рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:рд╕реНрдкреЙрдЗрд▓рд░
#include <LiquidCrystal.h>
#define NUM_KEYS 5
int adcKeyVal[NUM_KEYS] = {30, 150, 360, 535, 760};
LiquidCrystal lcd(A1, A2, A3, 2, 4, 7);
void setup()
{
lcd.begin(16, 2);
lcd.print("Keyboard");
delay(2000);
}
void loop() {
int key;
key = get_key();
lcd.clear();
lcd.print(key);
delay(100);
}
int get_key()
{
int input = analogRead(A6);
int k;
for(k = 0; k < NUM_KEYS; k++)
if(input < adcKeyVal[k])
return k + 1;
return 0;
}
рдХреМрди рд╕рд╛ рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрд▓рд╕реАрдбреА рд╕рдВрдХреЗрддрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдмрдЯрди рджрдмрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрдХреЗрддрдХ рдкрд░ рджрдмрд╛рдП рдЧрдП рдмрдЯрди рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рдПрдЧреАредGet_key рдлрд╝рдВрдХреНрд╢рди рджрдмрд╛рдП рдЧрдП рдмрдЯрди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдВрд╢рд╛рдВрдХрди рдореВрд▓реНрдпреЛрдВ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╡рд┐рднрдХреНрдд рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рд╡реЛрд▓реНрдЯреЗрдЬ рдХреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:#include <LiquidCrystal.h>
LiquidCrystal lcd(A1, A2, A3, 2, 4, 7);
void setup()
{
lcd.begin(16, 2);
lcd.print("Press keys");
delay(2000);
}
void loop() {
int input = analogRead(A6);
lcd.clear();
lcd.print(input);
delay(100);
}
рдЗрд╕реЗ Arduino рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреМрди рд╕реЗ рдорд╛рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреА рдЕрдВрд╢рд╛рдВрдХрди рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░реЗрдВред рдЖрдЗрдП рдЕрдм рд╣рдо рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрд▓рдИрдбреА рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЪрд▓реЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ:тАв рдЬрдм рдЖрдк рдмрдЯрди 1 (рджреВрд░ рдмрд╛рдПрдВ) рджрдмрд╛рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рд▓рд╛рд▓ рдмрддреНрддреА рдКрдкрд░ 2 рдмрдЯрди рдкрд░ - рд╣рд░рд╛, 3 - рдиреАрд▓рд╛ред рдЬрдм рдмрдЯрди рдлрд┐рд░ рд╕реЗ рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рдХрд╛рд╢ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рддрд╛ рд╣реИред рд╕рдВрдХреЗрддрдХ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рд░рдВрдЧ рдЪрд╛рд▓реВ рд╣реИрдВредтАв рдЬрдм рдмрдЯрди 4 рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд░рдВрдЧ рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ,рдЬрдм рдмрдЯрди 5 рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рднреА рд░рдВрдЧ рдирд┐рдХрд▓ рдЬрд╛рддреЗ рд╣реИрдВредрдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕реНрдХреЗрдЪ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ:рд╕реНрдкреЙрдЗрд▓рд░
#include <LiquidCrystal.h>
#define NUM_KEYS 5
int adcKeyVal[NUM_KEYS] = {30, 150, 360, 535, 760};
#define redLED 5
#define greenLED 9
#define blueLED 6
LiquidCrystal lcd(A1, A2, A3, 2, 4, 7);
int redLEDstate = 0;
int greenLEDstate = 0;
int blueLEDstate = 0;
int flag = 0;
void setup()
{
pinMode(redLED, OUTPUT);
pinMode(greenLED, OUTPUT);
pinMode(blueLED, OUTPUT);
lcd.begin(16, 2);
lcd.print("Try Keys + LEDs");
delay(1000);
lcd.clear();
}
void loop() {
int key;
key = get_key();
if(key == 1 && flag == 0) {
digitalWrite(redLED, !digitalRead(redLED));
flag = 1;
}
if(key == 2 && flag == 0) {
digitalWrite(greenLED, !digitalRead(greenLED));
flag = 1;
}
if(key == 3 && !flag) {
digitalWrite(blueLED, !digitalRead(blueLED));
flag = 1;
}
if(key == 4 && !flag) {
digitalWrite(redLED, !digitalRead(redLED));
digitalWrite(greenLED, !digitalRead(greenLED));
digitalWrite(blueLED, !digitalRead(blueLED));
flag = 1;
}
if(key == 5 && !flag){
digitalWrite(redLED, LOW);
digitalWrite(greenLED, LOW);
digitalWrite(blueLED, LOW);
flag = 1;
}
if(!key && flag)
{
flag = 0;
}
if (digitalRead(redLED)) {
lcd.setCursor(0,0);
lcd.print("Red");
}
else {
lcd.setCursor(0,0);
lcd.print(" ");
}
if (digitalRead(greenLED)) {
lcd.setCursor(5,0);
lcd.print("Green");
}
else {
lcd.setCursor(5,0);
lcd.print(" ");
}
if (digitalRead(blueLED)) {
lcd.setCursor(11,0);
lcd.print("Blue");
}
else {
lcd.setCursor(11,0);
lcd.print(" ");
}
}
int get_key()
{
int input = analogRead(A6);
int k;
for(k = 0; k < NUM_KEYS; k++)
if(input < adcKeyVal[k])
return k + 1;
return 0;
}
рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ, рд╣рдо рд╡рд░реНрдгрд┐рдд рдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдЫреЛрдЯрд╛ рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВредрдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдбрд┐рдЬрд┐рдЯрд▓ рд▓реИрдм рдХрд┐рдЯ рд╡рд┐рд╕реНрддрд╛рд░ рдмреЛрд░реНрдб рдХреА рдХреНрд╖рдорддрд╛рдПрдВ рдЖрдкрдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ, рдЧреНрд░рд╛рдлрд┐рдХ рд░реВрдк рд╕реЗ рдФрд░ рдЬрд▓реНрджреА рд╕реЗ Arduino рдФрд░ рдкреНрд▓рдЧ-рдЗрди рдРрдб-рдСрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рд╕реАрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВредрдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреНрд▓реВрдЯреВрде рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХреЗ рд╕рд╛рде Arduino рдХреА рдмрд╛рддрдЪреАрдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред рд╣рдо рдПрдордЖрдИрдЯреА рдРрдк рдЖрд╡рд┐рд╖реНрдХрд╛рд░рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд░реЗрдВрдЧреЗ , рдЬрд┐рд╕реЗ рдореИрд╕рд╛рдЪреБрд╕реЗрдЯреНрд╕ рдЗрдВрд╕реНрдЯреАрдЯреНрдпреВрдЯ рдСрдл рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреА рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдФрд░ рд╕рдорд░реНрдерд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред