O‘zbekiston respublikasi oliy va o‘rta maxsus ta’lim vazirligi islom karimov nomidagi toshkent davlat texnika universitetining qo‘qon filiali




Download 1,33 Mb.
bet7/19
Sana16.12.2023
Hajmi1,33 Mb.
#120908
1   2   3   4   5   6   7   8   9   10   ...   19
Bog'liq
EA (amaliy uslubiy).
7-mavzu, PYTHON dasturlash tilida oyin yaratish (2), shabalin (1), Darsni interfaol metodlarda tashkil etish, 12695 2 1F78141C8FE347CF075407B8659ABEF4B14CF9DE (1), 6-sinf-barcha-chorak-uchun-matematika-test-4, Anushteginiylar davlati, 0198002, ANKETA SOʻROVI TUSHUNCHASI, USLUBIY AFZALLIKLARI VA KAMCHILIKLARINI (2), 2 course reading and writing lesson 4, Mavzu Fonema-fayllar.org, 8-sinf answers (2)-Copy, 3-sinf answers (2)-Copy, Buxoro davlat universiteti evolutsiya nazariyasi fanidan mustaqi(1)
Nazorat savollari:
1.Ardiuno uno analog portlar nimani bajaradi?
2.void setup qanday funksiya?
3.void loop qanday kunksiya?
4.Ardiuno uno qancha kuchlanishda ishlaydi?



3-Amaliy mashg‘ulot


C++ tilida mikrokontroller uchun loyiha yaratish.
Amaliy ishning maqsadi: Mikrokontrollerlarga qanday dasturlash tillarida dastur yozilishi haqida tushunchaga ega bo‘lish, Ardiuno unoga C++ tilida loyiha kodlarini yaratish.
Kross platforma:
Arduino dasturiy ta'minoti (IDE) Windows, Macintosh OSX va Linux operatsion tizimlarida ishlaydi. Lekin ko'pgina mikrokontroller tizimlari Windows bilan cheklangan.
Oddiy va tushunarli dasturlash muhiti:
Arduino Dasturiy ta'minoti (IDE) yangi boshlanuvchilar uchun foydalanish uchun qulay, ammo ilg'or foydalanuvchilar uchun ham foydalanishi uchun etarlicha moslashuvchan. O'qituvchilar uchun bu qulay tarzda Processing dasturlash muhitiga asoslangan, shuning uchun o'sha muhitda dasturlashni o'rganayotgan talabalar Arduino IDE qanday ishlashi bilan tanish bo‘ladi.
Arduino dasturlash uchun C++ tili foydalaniladi va Arduino IDE (Integrated Development Environment) ni o'rganishni tavsiya etaman. Bu ushbu muhim dasturlash vositasi va qisqa yo'ldan yozilgan dasturlarni ishga tushirish uchun mo'ljallangan dastur. Quyidagi qadam-qadamlar bilan Arduino unoga C++ tilida dastur yozishni boshlashingiz mumkin:
Arduino IDE o'rnatish: Birinchi narsa, Arduino IDE ni kompyuteringizga o'rnatish kerak. IDE-ni Arduino rasmiy veb-saytidan yuklab olishingiz mumkin. IDE-ni o'rnatgach, uni oching.
Arduino ni qurish: Arduino unoni kompyuterga bog'lang va USB-port orqali Arduino-ni kompyuterga ulang. Arduino IDE-ni ochib, "Tools" (Vasitalar) menyusidagi "Board" (Doska) ni o'rnating va ishlatmoqchi bo'lgan Arduino modelini tanlang. Keyin "Port" (Port) ni tanlang va Arduino-ni aniqlangan portga ulashingiz kerak.
Dastur yozish: "File" (Fayl) menyusidagi "New" (Yangi) tugmasini bosing, bu erda dasturni yozishingiz mumkin. Ardindan, dasturni yozishni boshlang.
Dastur yozish: C++ tilida Arduino dasturini yozish uchun standart C++ sintaksisini foydalaning. Dasturizni yozish va saqlash uchun "File" (Fayl) menyusidagi "Save" (Saqlash) yoki "Save As" (Saqlash) tugmalaridan foydalaning. Faylni .ino kengaytmasi bilan saqlashingiz maslahat beriladi.
Kodni yuklash: Arduino IDE-da yozilgan kodni Arduinoga yuklash uchun "Upload" (Yuklash) tugmasini bosing. Kod o'qibatda Arduino qurilmangizga o'tkaziladi va ishga tushiriladi.
Monitor qo'llash: Dasturning ishlashini tekshirish uchun Arduino IDE-da "Tools" (Vasitalar) menyusidagi "Serial Monitor" (Seriya Monitor) ni oching. Bu qo'shimcha oyna orqali Arduino qurilmangizning chiqishlarini (print, Serial.print() funksiyalari orqali chiqqan ma'lumotlar) ko'rish uchun ishlatiladi.
Nazorat qilish: Ardindan Arduino unonizning ishlashini nazorat qilishingiz mumkin. Dasturning natijalari Serial Monitor orqali ko'rsatiladi.
Bu asosiy qadamlar bilan Arduino unoga dastur yozishni boshlashingiz mumkin. C++ tilida dastur yozish jarayonini o‘rganib, Arduino platformasini yaxshi tushunishingiz juda muhimdir. Boshlang‘ich dasturlar, sensorlar, chiqqanishlar va boshqa qurilmalar bilan amal qilishni o‘rganish uchun Arduino dasturlashning mashq qilishning eng yaxshi usuli bo‘lishi mumkin.

Oddiy elektron sayf ” loyihasini yaratish ko‘rib o‘tamiz.

#include


#include
#include
#include "SafeState.h"
#include "icons.h"
/* Locking mechanism definitions */
#define SERVO_PIN 6
#define SERVO_LOCK_POS 20
#define SERVO_UNLOCK_POS 90
Servo lockServo;
/* Display */
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
/* Keypad setup */
const byte KEYPAD_ROWS = 4;
const byte KEYPAD_COLS = 4;
byte rowPins[KEYPAD_ROWS] = {5, 4, 3, 2};
byte colPins[KEYPAD_COLS] = {A3, A2, A1, A0};
char keys[KEYPAD_ROWS][KEYPAD_COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, KEYPAD_ROWS, KEYPAD_COLS);
/* SafeState stores the secret code in EEPROM */
SafeState safeState;
void lock() {
lockServo.write(SERVO_LOCK_POS);
safeState.lock();
}
void unlock() {
lockServo.write(SERVO_UNLOCK_POS);
}
void showStartupMessage() {
lcd.setCursor(4, 0);
lcd.print("Welcome!");
delay(1000);
lcd.setCursor(0, 2);
String message = "ArduinoSafe v1.0";
for (byte i = 0; i < message.length(); i++) {
lcd.print(message[i]);
delay(100); }
delay(500);}
String inputSecretCode() {
lcd.setCursor(5, 1);
lcd.print("[____]");
lcd.setCursor(6, 1);
String result = "";
while (result.length() < 4) {
char key = keypad.getKey();
if (key >= '0' && key <= '9') {
lcd.print('*');
result += key; } }
return result;}
void showWaitScreen(int delayMillis) {
lcd.setCursor(2, 1);
lcd.print("[..........]");
lcd.setCursor(3, 1);
for (byte i = 0; i < 10; i++) {
delay(delayMillis);
lcd.print("=");
}
}
bool setNewCode() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Enter new code:");
String newCode = inputSecretCode();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Confirm new code");
String confirmCode = inputSecretCode();
if (newCode.equals(confirmCode)) {
safeState.setCode(newCode);
return true;
} else {
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("Code mismatch");
lcd.setCursor(0, 1);
lcd.print("Safe not locked!");
delay(2000);
return false;
}
}
void showUnlockMessage() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.write(ICON_UNLOCKED_CHAR);
lcd.setCursor(4, 0);
lcd.print("Unlocked!");
lcd.setCursor(15, 0);
lcd.write(ICON_UNLOCKED_CHAR);
delay(1000);
}
void safeUnlockedLogic() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.write(ICON_UNLOCKED_CHAR);
lcd.setCursor(2, 0);
lcd.print(" # to lock");
lcd.setCursor(15, 0);
lcd.write(ICON_UNLOCKED_CHAR);
bool newCodeNeeded = true;
if (safeState.hasCode()) {
lcd.setCursor(0, 1);
lcd.
print(" A = new code");
newCodeNeeded = false; }
auto key = keypad.getKey();
while (key != 'A' && key != '#') {
key = keypad.getKey(); }
bool readyToLock = true;
if (key == 'A' || newCodeNeeded) {
readyToLock = setNewCode();
} if (readyToLock) {
lcd.clear();
lcd.setCursor(5, 0);
lcd.write(ICON_UNLOCKED_CHAR);
lcd.print(" ");
lcd.write(ICON_RIGHT_ARROW);
lcd.print(" ");
lcd.write(ICON_LOCKED_CHAR);
safeState.lock();
lock();
showWaitScreen(100);
} }
void safeLockedLogic() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.write(ICON_LOCKED_CHAR);
lcd.print(" Safe Locked! ");
lcd.write(ICON_LOCKED_CHAR);
String userCode = inputSecretCode();
bool unlockedSuccessfully = safeState.unlock(userCode);
showWaitScreen(200);
if (unlockedSuccessfully) {
showUnlockMessage();
unlock();
} else {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Access Denied!");
showWaitScreen(1000);
}}
void setup() {
lcd.begin(16, 2);
init_icons(lcd);
lockServo.attach(SERVO_PIN);
/* Make sure the physical lock is sync with the EEPROM state */
Serial.begin(115200);
if (safeState.locked()) {
lock();
} else {
unlock();
}
showStartupMessage();
}
void loop() {
if (safeState.locked()) {
safeLockedLogic();
} else { safeUnlockedLogic(); } }



Download 1,33 Mb.
1   2   3   4   5   6   7   8   9   10   ...   19




Download 1,33 Mb.

Bosh sahifa
Aloqalar

    Bosh sahifa



O‘zbekiston respublikasi oliy va o‘rta maxsus ta’lim vazirligi islom karimov nomidagi toshkent davlat texnika universitetining qo‘qon filiali

Download 1,33 Mb.