ЁЯФз рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХ
- Arduino рдмреЛрд░реНрдб (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, Arduino Uno рдпрд╛ Arduino R4)
- I2C рдПрд▓рд╕реАрдбреА 1602 рдбрд┐рд╕реНрдкреНрд▓реЗ
- рдЬрдореНрдкрд░ рддрд╛рд░
- рдмреНрд░реЗрдбрдмреЛрд░реНрдб (рд╡реИрдХрд▓реНрдкрд┐рдХ)
ЁЯУМ рд╡рд╛рдпрд░рд┐рдВрдЧ рдХрдиреЗрдХреНрд╢рди

- I2C рдПрд▓рд╕реАрдбреА 1602 рдбрд┐рд╕реНрдкреНрд▓реЗ:
- VCC: тЖТ рдЖрд░реНрдбреБрдЗрдиреЛ 5V
- GND: тЖТ рдЖрд░реНрдбреБрдЗрдиреЛ GND
- рдПрд╕рдбреАрдП: тЖТ рдЖрд░реНрдбреБрдЗрдиреЛ A4 (Uno рдкрд░) рдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд SDA pin
- рдПрд╕рд╕реАрдПрд▓: тЖТ рдЖрд░реНрдбреБрдЗрдиреЛ A5 (Uno рдкрд░) рдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд SCL pin
рдиреЛрдЯ: рдЗрди рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ I2C рдкрддрд╛ рд╣реИ 0x27рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ I2C рд╕реНрдХреИрдирд░ рд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВред
ЁЯТ╗ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг
рдЗрд╕ рд╕реНрдХреЗрдЪ рдореЗрдВ рдирд┐рдореНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: LiquidCrystal_I2C рд▓рд╛рдЗрдмреНрд░реЗрд░реАред рдпрд╣ 1 рд╕реЗ 100 рдХреЗ рдмреАрдЪ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛, рдлрд┐рд░ рдЖрдкрдХреЛ (рд╕реАрд░рд┐рдпрд▓ рдореЙрдирд┐рдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдЕрдиреБрдорд╛рди рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рджреЗрдЧрд╛ред рдЖрдкрдХреЗ рдЗрдирдкреБрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрд▓рд╕реАрдбреА "рдмрд╣реБрдд рдЕрдзрд┐рдХ!" рдпрд╛ "рдмрд╣реБрдд рдХрдо!" рдЬреИрд╕реЗ рд╕рдВрдХреЗрдд рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЖрдк рд╕рд╣реА рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд▓рдЧрд╛ рд▓реЗрддреЗред
#include <LiquidCrystal_I2C.h>
// ----- LCD Settings -----
LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27, 16 columns, 2 rows
// Global game variables
int secretNumber;
bool gameOver = false;
void setup() {
// Initialize Serial Monitor
Serial.begin(9600);
while (!Serial) { ; } // Wait for Serial to initialize (if needed)
// Initialize LCD
lcd.init();
lcd.backlight();
// Welcome message on LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Guess The Number");
lcd.setCursor(0, 1);
lcd.print("1-100");
// Seed random generator using an unconnected analog pin
randomSeed(analogRead(0));
// Generate secret number between 1 and 100
secretNumber = random(1, 101);
// Prompt in Serial Monitor
Serial.println("Welcome to 'Guess The Number'!");
Serial.println("I'm thinking of a number between 1 and 100.");
Serial.println("Enter your guess:");
}
void loop() {
if (Serial.available() > 0 && !gameOver) {
int guess = Serial.parseInt();
if (guess == 0) return; // Skip if no valid number entered
// Clear LCD for new message
lcd.clear();
if (guess < secretNumber) {
lcd.setCursor(0, 0);
lcd.print("Too Low!");
Serial.println("Too Low! Try again:");
}
else if (guess > secretNumber) {
lcd.setCursor(0, 0);
lcd.print("Too High!");
Serial.println("Too High! Try again:");
}
else {
lcd.setCursor(0, 0);
lcd.print("Correct!");
lcd.setCursor(0, 1);
lcd.print("You Win!");
Serial.println("Correct! You win!");
gameOver = true;
}
// Wait a moment before next input
delay(1500);
// If game not over, re-prompt on LCD
if (!gameOver) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Guess 1-100");
Serial.println("Enter your next guess:");
}
}
}
ЁЯУЛ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
- рдЦреЗрд▓ рдЖрд░рдВрднреАрдХрд░рдг:
- рдПрд▓рд╕реАрдбреА рдПрдХ рд╕реНрд╡рд╛рдЧрдд рд╕рдВрджреЗрд╢ ("рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдПрдВ") рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рд╕реАрдорд╛ (1-100) рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред
- рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЧреБрдкреНрдд рд╕рдВрдЦреНрдпрд╛ рдЙрддреНрдкрдиреНрди рдХреА рдЬрд╛рддреА рд╣реИ
random(1, 101).
- рд╕реАрд░рд┐рдпрд▓ рдореЙрдирд┐рдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ:
- рдЦрд┐рд▓рд╛рдбрд╝реА рд╕реАрд░рд┐рдпрд▓ рдореЙрдирд┐рдЯрд░ рдореЗрдВ рдЕрдиреБрдорд╛рди рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реИред
- рдХреЛрдб рдЗрди рдЕрдиреБрдорд╛рдиреЛрдВ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ
Serial.parseInt().
- рдкреНрд░рддрд┐рдкреБрд╖реНрдЯрд┐ рд╡реНрдпрд╡рд╕реНрдерд╛:
- рдпрджрд┐ рдЕрдиреБрдорд╛рди рдмрд╣реБрдд рдХрдо рдпрд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдПрд▓рд╕реАрдбреА рдФрд░ рд╕реАрд░рд┐рдпрд▓ рдореЙрдирд┐рдЯрд░ рдлреАрдбрдмреИрдХ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдмрд╣реБрдд рдХрдо!" рдпрд╛ "рдмрд╣реБрдд рдЕрдзрд┐рдХ!")ред
- рдПрдХ рдмрд╛рд░ рд╕рд╣реА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧ рдЬрд╛рдиреЗ рдкрд░ рдмрдзрд╛рдИ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЦреЗрд▓ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
- рдкреНрд░рджрд░реНрд╢рди рдЕрджреНрдпрддрди:
- рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрдорд╛рди рдХреЗ рдмрд╛рдж рдПрд▓рд╕реАрдбреА рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрджреЗрд╢ рдЫреЛрдЯреА 16├Ч2 рд╕реНрдХреНрд░реАрди рдкрд░ рднреА рд╕реНрдкрд╖реНрдЯ рд╣реИрдВред
ЁЯОп рд╕рдВрд╡рд░реНрджреНрдзрди рдФрд░ рд╡рд┐рдЪрд╛рд░
- рд░реАрд╕реЗрдЯ рдмрдЯрди:
- Arduino рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд┐рдП рдмрд┐рдирд╛ рдЧреЗрдо рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╢ рдмрдЯрди рдЬреЛрдбрд╝реЗрдВред
- рд╕реНрдХреЛрд░ рдХреАping:
- рдЕрдиреБрдорд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдирдЬрд╝рд░ рд░рдЦреЗрдВ рдФрд░ рд╕реНрдХреЛрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред
- рдПрдХрд╛рдзрд┐рдХ рд╕реНрддрд░:
- рдРрд╕реЗ рд╕реНрддрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдЬреАрддрдиреЗ рдкрд░ рд╕рдВрдЦреНрдпрд╛ рд╕реАрдорд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред
- рдХрд╕реНрдЯрдо рд╡рд░реНрдг:
- рдордиреЛрд░рдВрдЬрдХ рдЖрдЗрдХрди рдХреЗ рд▓рд┐рдП рдПрд▓рд╕реАрдбреА рдкрд░ рдХрд╕реНрдЯрдо рдХреИрд░реЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдЬреИрд╕реЗ, рдЬреАрддрддреЗ рд╕рдордп рд╕реНрдорд╛рдЗрд▓реА рдЪреЗрд╣рд░реЗ)ред
I2C LCD 1602 рдХреЗ рд╕рд╛рде Arduino рдкрд░ рдЕрдкрдиреЗ рд░реЗрдЯреНрд░реЛ, рдЯреЗрдХреНрд╕реНрдЯ-рдЖрдзрд╛рд░рд┐рдд рдЧреЗрдо рдмрдирд╛рдиреЗ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ! рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИ рдпрд╛ рдЖрдкрдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдмрджрд▓рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдмреЗрдЭрд┐рдЭрдХ рдкреВрдЫреЗрдВред рд╣реИрдкреНрдкреА рдЧреЗрдорд┐рдВрдЧ! ЁЯШКЁЯОотЬи