მემბრანული საკეტი კარებისთვის Arduino-ს გამოყენებით. ელექტრონული საკეტი Arduino-ზე. „ჭკვიანი ციხესიმაგრე“ პროექტის შემდგომი განვითარება

ეს პროექტი მოდულარულია, ასე რომ თქვენ შეგიძლიათ დააკავშიროთ/გათიშოთ სხვადასხვა ელემენტები და მიაღწიოთ სხვადასხვა ფუნქციონირებას. სურათებში უფრო ნათლად ჩანს ვარიანტი გაზრდილი ფუნქციონირებით და თავად:

  • ჩაკეტვის მექანიზმი. ემსახურება კარების გაღებას და დახურვას. ეს პროექტი განიხილავს სამ განსხვავებულ მექანიზმს:
    • სერვო. არიან დიდები, არიან პატარები. ძალიან კომპაქტური და მნიშვნელოვან ჭანჭიკთან ერთად - შესანიშნავი ვარიანტი
    • ელექტრო დისკი მანქანის კარის საკეტისთვის. დიდი და ძლიერი რამ, მაგრამ ასევე უბრალოდ ღვთაებრივი დინებები
    • სოლენოიდის დამჭერი. კარგი ვარიანტია, რადგან ის თავისთავად იხურება

    პროგრამული უზრუნველყოფის პარამეტრებში შეგიძლიათ აირჩიოთ სამი ტიპიდან რომელიმე (პარამეტრები საკეტის_ტიპი)

  • ღილაკი შუაში. ემსახურება კარების შიგნიდან გაღებას და დაკეტვას. ის შეიძლება განთავსდეს კარის სახელურებზე (მუხლის გვერდზე ან თითების გვერდზე), თავად კარებზე ან სამაგრზე
  • დარეკვის ღილაკი. ემსახურება როგორც კარების დახურვას, ასევე გაღვიძებას და ენერგიის დაზოგვას. ის შეიძლება განთავსდეს კარის სახელურებზე (მუხლის გვერდზე ან თითების გვერდზე), თავად კარებზე ან სამაგრზე
  • კინცევიკიკარების დახურვაზე. კარების დახურვისას ავტომატური ჩაკეტვისთვის. შემიძლია მაგრამ:
    • ტაქტის ღილაკი
    • ჰოლის სენსორი + მაგნიტი თავად კარებზე
    • რიდის ჩამრთველი + მაგნიტი თავად კარებზე
  • საიდუმლო ფასდაკლების წვდომის ღილაკი. ემსახურება პაროლის გადატვირთვას / ახალი პაროლის შეყვანას / ახალი გასაღების / კომბინაციის დამახსოვრებას და ა.შ. შესაძლოა, აქ, შენობაში გამოკეტილი იქნებით
  • LEDსამუშაოს მითითებისთვის. ხელმისაწვდომია RGB LED, წითელი და მწვანე ფერები (როდესაც შერეულია, გამოიყენეთ ყვითელი):
    • დაწვა მწვანე - VIDKRITO ციხე. შეინახეთ, ასე რომ არ დაგავიწყდეთ კარების დახურვა
    • განათება - სისტემა გამოფხიზლდა და მზად არის პაროლის შესაყვანად
    • წითელი ბატარეა ციმციმებს

ნებისმიერი ამ ელემენტის გამორთვა შესაძლებელია სისტემიდან:

  • მოდი მოვაწესრიგოთ ბოლო ქუდი. პროგრამული უზრუნველყოფის პარამეტრებში, იგივე ჩართულია (პარამეტრები კუდის_ღილაკი). ახლა საკეტის დახურვისთვის, თქვენ უნდა დააჭიროთ ღილაკს
  • ჩვენ ვხსნით გარე ღილაკს. firmware-ში ის ასევე გამორთულია პარამეტრებში (პარამეტრები wake_ღილაკი). ახლა არ არის საჭირო სისტემის გაღვიძება, ის თავისთავად გადაიტვირთება (ენერგიის მოხმარება ცოტა მეტია). ახლა კი კარების წინა მხარეს საკეტის ღილაკი აღარ გვაქვს და კარის საკეტი გვჭირდება. აბო საკეტი - კლიამკა
  • ჩვენ ვხსნით შიდა ღილაკს. ეს ვარიანტი განკუთვნილია კარადებისა და სეიფებისთვის. კორექტირებაში არაფრის შეცვლა არ არის საჭირო
  • ჩვენ ვასუფთავებთ LED-ს. არაფრის შეცვლა არ არის საჭირო კორექტირებაში
  • შეგიძლიათ წაშალოთ წვდომის ღილაკი პირველი ვიკის შემდეგ, ან გადაწეროთ კოდი თქვენთვის
  • კარები დაკეტილია, პრესა არ გაიმარჯვებს - გადაატრიალეთ, შეამოწმეთ შეყვანილი პაროლი / RFID ტეგი / ელექტრონული გასაღები / თითის ანაბეჭდი
  • კარები დაკეტილია, სისტემა შესულია და ამოწმებს პაროლს. საათის რეგულირება შესაძლებელია (პარამეტრები ძილის_დრო)
  • კარები დაკეტილია, შეიყვანეთ პაროლი / ტეგი / გასაღები და ა.შ. - გახსენი
  • კარები დახურულია, დაჭერით შუაში - ღია
  • წარდგენის კარები, თუ დაჭერით არ გაიმარჯვებს - იკეტება
  • კარები შუაშია, დაჭერილი - დახურული
  • კარები დაკეტილია, საკეტი დაჭერილია - დახურეთ

საკეტი იკვებება ბატარეით დაბალი ენერგიის დაზოგვის რეჟიმში (ჩართეთ: პარამეტრი ძილის_ჩართვა), და თავად:

  • გააჩერეთ კანი რამდენიმე წამით, შეიკერეთ ქვემოდან (სურვილისამებრ, რადგან ღილაკი არ არის. შეგიძლიათ ჩართოთ კონფიგურაციისას. wake_ღილაკი)
  • კანის ნადები იკერება ბატარეის დაძაბულობის ქვეშ (ჩართვა/გამორთვის პარამეტრი ბატარეის_მონიტორი)
  • თუ ბატარეა დაცლილია (ძაბვა დაყენებულია მორგებულში bat_low):
    • გახსენით კარები (სურვილისამებრ, შეიძლება კონფიგურირებული იყოს firmware-ში open_bat_low)
    • დაიცავით გახსნისა და დახურვისგან
    • ღილაკებზე დაჭერისას წითელი LED ანათებს
    • შეწყვიტე UNDERWAY-ის თვალყურის დევნება (პაროლის/ტეგის შეყვანა და ა.შ.)

თუ სისტემა არ იძინებს, დააჭირეთ პაროლის შეცვლას (ღილაკი დაბლოკილია). მოხმარებული პაროლის შეცვლის რეჟიმი:
შეიყვანეთ პაროლი ნომრებით ( მაქსიმუმ 10 ციფრი!!!)

  • როდესაც აკრიფებთ *, პაროლი იწერება მეხსიერებაში და სისტემა გადის პაროლის შეცვლით
  • როცა აკრიფეთ #, პაროლი აღდგება (შეგიძლიათ ხელახლა შეიყვანოთ)
  • თუ 10 წამის განმავლობაში არაფერს დააჭერთ, ავტომატურად გამოხვალთ პაროლის შეცვლის რეჟიმიდან და ძველი პაროლი დაიკარგება.

თუ სისტემას არ სძინავს (გაიღვიძეთ ღილაკის ან ძილის რეჟიმის გამოყენებით), პაროლის შეყვანის რეჟიმში შესასვლელად დააჭირეთ ღილაკს *
თუ სისტემა იძინებს და პერიოდულად გადაიტვირთება ღრძილების შესამოწმებლად, დააჭირეთ მას * და გამოუშვით, სანამ წითელი LED არ აანთებს.
პაროლის რეჟიმი:

  • პაროლის დამუშავება ხდება ისე, რომ სწორი პაროლი დაცულია მხოლოდ რიცხვების სწორი თანმიმდევრობის შეყვანისას, მაგალითად, პაროლი არის 345, შემდეგ შეგიძლიათ შეიყვანოთ ნებისმიერი რიცხვი, სანამ არ გამოჩნდება თანმიმდევრობა 345, შემდეგ კი 3098457 0345 გახსნის საკეტს. ასე რომ, ის მთავრდება 345-ით.
  • თუ შეყვანილი პაროლი სწორია, კარები გაიხსნება
  • თუ არაფერი დაჭერით, 10 წამის შემდეგ სისტემა უბრუნდება ნორმალურ (ჭია) რეჟიმს
  • # დაჭერით, თქვენ დაუყოვნებლივ გამოხვალთ პაროლის შეყვანის რეჟიმიდან
  • თუ პაროლის შეყვანის რეჟიმში დააჭერთ საიდუმლო პაროლის შეცვლის ღილაკს, თქვენც გამოხვალთ

მე, როგორც ადამიანების უმეტესობა, Dacha-ს ვუკავშირებ სიტყვებს: რემონტი, მწვადი, კომფორტი და სხვა მისასალმებელი სული და სხეული, ხოლო მეორე მხარე: ქალაქი, გათხრები, რემონტი, ყოველდღიური ცხოვრება და ა.შ.

10 წლის განმავლობაში ვცდილობთ გავაკეთილშობილოთ და შევქმნათ მაქსიმალური კომფორტი ჩვენს აგარაკზე. მომავალი, სარემონტო და ა.შ. ბუდინოკი, ბეღელი, ლაზნა... ..და კვეთა მარჯვნივ მოვიდა ქუჩის გალავანთან, ჭიშკართან და ჭიშკართან. იმუშავეთ ასე კეთილსინდისიერად, ბიუჯეტით და საიმედოობით.

გარკვეული დეტალების განხილვის შემდეგ მიღებულ იქნა, რომ კარიბჭეები ავტომატურად შემოიჭრება და კონტროლდება ACS-ის ხელისუფლების მიერ. კარიბჭესთან, სავარაუდოდ, ელექტრომომარაგება შეძენილი იყო ავტომატიზაციის ნაკრებისთვის (დისკი, თარო, დისტანციური მართვა და ა.შ.) და საჭირო იყო ტექნიკური სამუშაოების ჩატარება, მათ შესახებ ქვემოთ.

საგანძური მოდის:

  1. საკეტის გამოყენება შესაძლებელია უპრობლემოდ ადრე დაყენებული ვიდეო ინტერკომით (განბლოკვა სახლიდან გაუსვლელად)
  2. ქუჩიდან და ეზოდან შესაძლებელია კარების გაღება ძირითადი გასაღებით ან გასაღების გარეშე.
  3. ინვესტირება 5000 რუბლამდე თქვენს ბიუჯეტში.

RuNet-ში ძიებებმა წარმოადგინა მიმდინარე ფასების დიაპაზონი 7000-დან უსასრულობამდე. მზა ხსნარის შეძენა ვერ მოხერხდა და ალტერნატივა ფართო შესაძლებლობებით მოიფიქრა და თავად კარი დაიხურა!

მრავალი რემონტისა და გადახდის შემდეგ მიიღეს ელექტრომექანიკური საკეტის ყიდვა დაახლოებით 2000 რუბლზე, კლავიატურის დაცვა ღირს 350 რუბლი და რომელსაც MK იქნება პასუხისმგებელი აქ. ვინაიდან აშკარა იყო, რომ იყო Arduino-ს ნანო დაფების თაიგული, რელეები და დაშლა და რამდენიმე მავთული, მზა ნაკრების ხარისხს შორის სხვაობამ შეადგინა 4000 რუბლზე მეტი. რაც შემეხება მე, შესანიშნავი ბონუსი აზარტული მოთამაშესთვის და თვითგანვითარებისთვის.

აბა, ახლა, მარცხნიდან მარჯვნივ:

ყველა საჭირო კომპონენტის შეძენის შემდეგ დავიწყეთ ხერხი.

კლავიატურის კავშირის დიაგრამა

დამატებითი LED ინდიკატორები (თეთრი, მწვანე, წითელი) პანელზე კლავიატურაზე მიუთითებს (შეყვანილი, სწორი კარის პაროლი გახსნილია, დადასტურებულია).

  • pin 9 zhovtiy
  • pin 10 მწვანე
  • pin 11 chervony

პანელი (ბადე) დამზადებულია პლექსიგლასისგან, დაჭრილი ცუკკერკის ყუთში და ოფისის მეზობლებმა იცინეს. ახალი საღეჭი საჭრელი ცოტა მსუქანი გამოდგა, ამიტომ ფაიფურით მომიწია გაპრიალება.

აბა, შაბათ-კვირაა, აგარაკზე ვზივარ.

ელექტრომექანიკური საკეტის გასახსნელად საჭიროა 12 ვოლტი. საცხოვრებელი ბლოკი, რომელიც იცხოვრებს MK buv მე-5 საუკუნეში, გადაწყვეტილების დაყენების გადაწყვეტილება dc-dc გარდაიქმნება ზეციური სამყაროდან ციხესიმაგრისთვის. მას შემდეგ, რაც დააკავშირა ყველაფერი და დაიწყო მისი შემოწმება, ის მუშაობს, მაგრამ როდესაც ძაბვა იქნა გამოყენებული საკეტის სოლენოიდზე, დუნია ხელახლა ჩართული იყო, მოკლედ სასიცოცხლო ბლოკს. გარდა ამისა, პანელის შეერთების შემდეგ დავაჭირე ვიდეო ინტერკომს საკეტზე, კარზე განბლოკვის ღილაკს რომ დავაჭირე არაფერი მომხდარა, საკეტზე პატარა დაწკაპუნება. ახალი ისრების გაყვანა არ არის გამოსავალი, რადგან ისინი უკვე დაბეტონებულია ჯიხურიდან გასასვლელში. პანელისთვის კიდევ ერთი რელეს დამატებით და დამატებითი მიწოდების ბლოკის დაყენებით 12 ვ. ციხისთვის. დახარისხების/შეგროვების შემდეგ ყველაფერი დალაგდა, MK-მ შეწყვიტა ხელახლა ჩართვა. თქვენ მხოლოდ უნდა აიღოთ შედუღების ყუთი ტენიანობის დაცვის ქვეშ, დაიჭიროთ ისრები, წებო, სილიკონი და დაასრულეთ!

ამ გაკვეთილზე ჩვენ ვისწავლით თუ როგორ უნდა ვიმუშაოთ მარტივი სისტემა საკეტის გასახსნელად ელექტრონული გასაღების (ტეგის) გამოყენებით.

შემდეგი, შეგიძლიათ კიდევ უფრო დახვეწოთ და გააფართოვოთ ფუნქციონირება. მაგალითად, დაამატეთ ფუნქცია „ახალი კლავიშების დამატება და მეხსიერებიდან მათი წაშლა“. საბაზისო ვერსიას აქვს მარტივი მიდგომა, თუ უნიკალური გასაღების იდენტიფიკატორი პირველად არის მითითებული პროგრამის კოდში.

რა გაკვეთილი გვჭირდება:

პროექტის განსახორციელებლად, ჩვენ უნდა დავაყენოთ ბიბლიოთეკები:

2) ახლა თქვენ უნდა დააკავშიროთ Buzzer, რომელიც გასცემს სიგნალს კლავიშის დაჭერისას და საკეტის გახსნისას და სხვა სიგნალს საკეტის დახურვისას.

ზუმერი გააქტიურებულია შემდეგი თანმიმდევრობით:

არდუინო ზუმერი
5 ვ VCC
GND GND
პინი 5 IO

3) სერვო დრაივერი იმოქმედებს მექანიზმის სახელმძღვანელოდ. სერვო დისკის კონფიგურაცია შესაძლებელია თქვენთვის სასურველი ზომით და იმ ძალით, რომელსაც ქმნის სერვო დისკი. სერვო დისკს აქვს 3 კონტაქტი:

უფრო კონკრეტულად, თქვენ ხედავთ, თუ როგორ დავაკავშირეთ ყველა მოდული ქვემოთ მოცემულ სურათზე:

ახლა, როდესაც ყველაფერი დაკავშირებულია, შეგიძლიათ გააგრძელოთ პროგრამირება.

ესკიზი:

#შეიცავს #შეიცავს #შეიცავს // "RFID" ბიბლიოთეკა. #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522 (SS_PIN, RST_PIN); ხელმოუწერელი გრძელი uidDec, uidDecTemp; // შესანახად: tag ნომრები ათეულების ფორმატში Servo servo; void setup () (Serial.begin (9600); Serial.println ("ბარათის მოლოდინში ..."); SPI.begin (); // SPI ინიციალიზაცია / Init SPI bus. mfrc522.PCD_Init (); // ინიციალიზაცია MFRC522 / MFRC522 ბარათის დაყენება. servo.attach (6); servo.write (0); // დააინსტალირეთ სერვერი დახურულ მდგომარეობაში) void loop () (// მოძებნეთ ახალი ბარათი, თუ (! mfrc522.PICC_IsNewCardPresent () ) (return; ) // ვიბრაციული ზონა, თუ (! mfrc522.PICC_ReadCardSerial ()) (return;) uidDec \u003d 0; // ტეგის სერიული ნომრის ნახვა. (ბაიტი i \u003d 0; i)< mfrc522.uid.size; i++) { uidDecTemp = mfrc522.uid.uidByte[i]; uidDec = uidDec * 256 + uidDecTemp; } Serial.println("Card UID: "); Serial.println(uidDec); // Выводим UID метки в консоль. if (uidDec == 3763966293) // Сравниваем Uid метки, если он равен заданому то серва открывает. { tone(5, 200, 500); // Делаем звуковой сигнал, Открытие servo.write(90); // Поворациваем серву на угол 90 градусов(Отпираем какой либо механизм: задвижку, поворациваем ключ и т.д.) delay(3000); // пауза 3 сек и механизм запирается. tone(5, 500, 500); // Делаем звуковой сигнал, Закрытие } servo.write(0); // устанавливаем серву в закрытое сосотояние }

მოდით შევხედოთ ესკიზს უფრო დეტალურად:

ბარათის UID-ის (ტეგების) ამოცნობისთვის, თქვენ უნდა დაწეროთ ეს ჩანახატი arduino-ში, შეარჩიოთ დიაგრამა, განათავსოთ იგი ადგილზე და გახსნათ კონსოლი (სერიული პორტის მონიტორინგი). როდესაც ტეგს შეეხებით RFID-ს, კონსოლი აჩვენებს ნომერს

UID ჩანაწერები უნდა იყოს შეყვანილი შეურაცხმყოფელ რიგში:

თუ (uidDec \u003d\u003d 3763966293) // ნიშნის Uid განახლებულია, თუ ის განსხვავდება მითითებულისგან, მაშინ სერვო დისკი ხსნის დატვირთვას.

თითოეულ მონაცემთა ბარათს აქვს უნიკალური იდენტიფიკატორი და არ მეორდება. ამრიგად, თუ წარმოგიდგენთ ბარათს, რომლის იდენტიფიკატორი მითითებული იყო პროგრამაში, სისტემა მისცემს წვდომას დამატებით სერვო დისკზე.

ვიდეო:

ვპოულობ კარის საკეტს, რომელიც ხვრეტილია რადიოსიხშირული გასაღებით.

საკეტი მუშაობს ასე: მათ წარმოადგინეს OUR გასაღები (RFID tag) - საკეტი დაიხურა, მათ კვლავ წარმოადგინეს გასაღები - საკეტი გაიხსნა. საკეტის მუშაობის ვიზუალიზაციისთვის გამოიყენება ექვსი ბიკოლორი LED (ხაზი). როდესაც დახურულია, წითელი ფერი ღიაა, ხოლო ღია, მწვანე. როცა სხვის გასაღებს მოაქვთ, წითელი LED ანათებს.

მექანიკური მექანიზმის ჩარჩოში შერჩეულია მანქანის ცენტრალური საკეტის ამძრავი. შეგიძლიათ იყიდოთ ახალი, შეგიძლიათ იყიდოთ მეორადი, ფასში სხვაობა დიდი არ არის, ამიტომ თუ ახალს იყიდით უფრო საიმედო იქნება. წამყვანი ღერო დაკავშირებულია ჩამკეტით. ჩამკეტი ისევ რადიანსკია, მიცნი. მე არ მჭირდება ასეთი "ანტივანდალიზმის" ძალისხმევა.

"მანქანა" კონტროლდება ორი მავთულის საშუალებით. ერთი პოლარობა კიდებს ღეროს, საპირისპირო პოლარობა აბრუნებს ღეროს. 12 ვოლტის ძაბვით, დინება არის 6 ამპერი, მეტი...
"მანქანაში" არ არის ტერმინალური ქიმიკატები.

გამომდინარე იქიდან, რომ საკეტის წრეს (პროექტის მიხედვით) აქვს გარანტირებული მიწოდება, ბატარეა არის 12 ვოლტი, საკეტის მუშაობის უზრუნველსაყოფად, სიჩქარით ~ 220. "მანქანის" მართვის წრედის გაფართოებით. მიკროსქემის განსაკუთრებული მახასიათებელია მისი არაწრფივიობა, რაც უზრუნველყოფს საკეტის მექანიზმის საიმედო მუშაობას და ამავე დროს - "მანქანის" და გასაღების ტრანზისტორების ნაზ მუშაობას.

დიაგრამაზე "დახურული" მხარი ნაჩვენებია წითლად, ხოლო "ღია" მხრის მწვანე. მხრები იკვრება გვერდიგვერდ, რეზისტორების მეშვეობით (მდებარეობს სიცოცხლის ბლოკში). Podol kharchuvannya ხიდის მხრები, vvіv რძიანი მოთხოვნების გამორთვისთვის.

ახსნა: 33-ომ რეზისტორების მეშვეობით (სიცოცხლის ბლოკის მიკროსქემის დიაგრამაზე) 12 ვოლტის ძაბვა მუხტავს კონდენსატორებს (თითოეული 2000 μF, კანის მხრებში). როდესაც არის ძაბვის მიწოდება Arduino_ProMini- კონტროლერიდან 168 შესასვლელთან "დახურვა" (ან ანალოგიურად "გახსნა"), ოპტოკუპლერის PVT322 მეშვეობით - იხსნება კლავიშების შესაბამისი მკლავი. რა შემთხვევაში ხდება თავდასხმა: კლავიშების გახსნის მომენტში, კონდენსატორების ენერგია მჭიდროდ "აჭედებს" "მანქანის" ძრავას. კონდენსატორების გამონადენის შემთხვევაში (ეს მითითებულია სწრაფად), "მანქანის" ძრავა აღჭურვილია სიმებით, რომელიც გარშემორტყმულია რეზისტორებით (33-ე). ამიტომ, "დახურვის" პროცესის ბოლოს - საკეტის "განბლოკვა", ღერო მთლიანად იშლება.

ძრავის კონტროლის ეს მეთოდი ოპტიმალურია.

ცოცხალი ბლოკის მიკროსქემის დიაგრამა არის ტრანსფორმატორი. ზოგადად, საკეტის წრეს ესაჭიროება 12 ვოლტიანი 2.8-A/H ბატარეა, ხოლო კვების ბლოკი მხარს უჭერს ბატარეას ნომინალურ დონეზე. "Mereja" LED მიუთითებს რობოტის სასიცოცხლო ბლოკის ნორმალურ მუშაობაზე.

ყველა დიოდი 1N4007 (დაავიწყდა დიაგრამაზე მითითება და ადამიანების მიერ ელექტრომომარაგების დაყენება - რა?).

(1) zіbrany obmezhuvach მაქსიმალური struma. რეზისტორი R 1 სამონტაჟო დონის ზედა ზღვარი 300 მ.
ინტეგრალურ სტაბილიზატორზე LM317 (2) არჩეული ძაბვის სტაბილიზატორი. სტაბილიზაციის ძაბვა რეგულირდება რეზისტორით2 . ბატარეაზე ძაბვა შეიძლება გახდეს 13,7 ვოლტი.

ბატარეიდან ძაბვა მიეწოდება სამ წერტილს.
რეზისტორების მეშვეობით (33-ეზე) (X), (Y) - ძრავის "მძღოლის" კლავიშების უზრუნველყოფა.

მე ვაგროვებ ჩემი მოწყობილობების უმეტესობას იმ ნივთებიდან, რაც გამომივიდა. ეს პროექტი არ არის დამნაშავე. საქმის შემთხვევაში არის ვიკორისტი :) ელექტრონული ბალასტით:

LED-ები No-2 ... No.-7 - ორმაგი ფერის. სუნები ხაზად არის გაყვანილი. გამოიყენეთ ვიკი საკეტის "გახსნის" და "დახურვის" პროცესების ვიზუალიზაციისთვის. მორთული.

Arduino არის საუკეთესო სისტემა ნებისმიერი სახის ასლების შესაქმნელად. იდეების უმეტესობა მის გარეშე ვერ გაიღებდა ფესვებს. მე დიდი ხანია მაქვს ეს იდეა: შექმენით სპეციალური კომბინირებული საკეტი Arduino-ზე. მის გასახსნელად აუცილებელია სიმღერის ღილაკის დაჭერა. ამ შემთხვევაში საკეტის გახსნა არ არის საჭირო, მაგრამ საჭიროა იცოდეთ საჭირო ღილაკი. მის დასამახსოვრებლად აუცილებელია ვიკორისტური მეხსიერების სიმღერის ინტერვალების დაცვა. ასეთი ბოროტი ადამიანი ფულს ვერ შოულობს. ეს ყველაფერი მხოლოდ თეორიაა.

მის ასაღებად საჭიროა სწრაფად გამოიყენოთ პირდაპირი დენის იმპულსების სპეციალური მოწყობილობა, ასევე რიგი ექიმები და აბანოები. თუ მზად ხართ დიდი საერთო ზომების მოწყობილობისთვის, მისი გამოყენება ადვილი იქნება. როგორც წესი, ასეთი აზრები არ იძლევა სიმშვიდეს. პირველი ნაბიჯი მშვიდობის რეალიზაციის გზაზე იყო პროგრამების შექმნა Arduino-ს ქვეშ. ის თავად იქნება კომბინირებული საკეტი. მის გასახსნელად, თქვენ უნდა დააჭიროთ არა მხოლოდ ერთ ღილაკს, არამედ რამდენიმე კლავიშს და ის ერთდროულად იმუშავებს. დასრულებული წრე ასე გამოიყურება:

სურათის სიკაშკაშე არ არის უფრო ნათელი, მაგრამ კავშირი დაკავშირებულია მიწასთან, D3, D5, D7, D9 და D11.

ნახვის კოდი მოცემულია ქვემოთ:

Const int ina \u003d 3; const int inb \u003d 5; const int inc \u003d 9; const int ledPin \u003d 13; int i\u003d 1000; ბაიტი a\u003d 0; ბაიტი b\u003d 0; ბაიტი c\u003d 0; ბაიტი d\u003d 0; ხელმოუწერელი დიდი ხნის განმავლობაში \u003d 0; // არ დაივიწყოთ ყველაფერი, რაც მილის მნიშვნელობას იღებს () ხელმოუწერელი გრძელი ტემპერატურა \u003d 0; // შენახვა ხელმოუწერელ გრძელ ბაიტში \u003d (0, 0, 0, 0, 0, 0, 0, 0); // kodi vlasne byte keyb \u003d (1, 1, 1, 1, 0, 1, 0, 0); ბაიტი გასაღები \u003d (1, 0, 1, 0, 1, 1, 1, 0); ბაიტი k\u003d 0; void setup () (pinMode (ina, INPUT_PULLUP); // 3 შეყვანა, რომლებიც დაკავშირებულია ღილაკებთან pinMode (inb, INPUT_PULLUP); pinMode (inc, INPUT_PULLUP); pinMode (ledPin, OUTPUT); // LED-ის ჩასმა მე-13 pinMode (7, OUTPUT); pinMode (11, OUTPUT); ციფრული ჩაწერა (7, LOW); // ჩანაცვლება დაფქული ციფრული ჩაწერა (11, LOW); დრო \u003d მილი (); // საჭიროა დიდი ხნის განმავლობაში) ორჯერ აციმციმება. ( ) ( // ამაღლებული LED ციფრული ჩაწერა (ledPin, HIGH); დაყოვნება (100); ციფრული ჩაწერა (ledPin, LOW); დაყოვნება (100); ციფრული ჩაწერა (ledPin, HIGH); დაყოვნება (100); digitalWrite (ledPin, LOW); დაყოვნება ( 200);) ბათილი ციკლი () (თუ (k\u003d\u003d 0) (ორჯერ მოციმციმე (); // კოდის მოთხოვნა) თუ (k\u003d\u003d 8) (ციფრული ჩაწერა (ledPin, HIGH); დაყოვნება ( 3000); k \u003d 0 ;) a \u003d ციფრული წაკითხვა (ina); // ღილაკებიდან სიგნალების დონეები იკითხება - დაჭერილია / არ არის დაჭერილი b \u003d ციფრული წაკითხვა (inb); c \u003d ციფრული წაკითხვა (inc); დაყოვნება (100). u003d\u003d c )) (if (a \u003d\u003d keya [k]) (if (b \u003d\u003d keyb [k]) (if (c \u003d\u003d keyc [k]) (k ++; )))) თუ (k \u003d\u003d 1) (თუ (d \u003d\u003d 0) (დრო \u003d მილი (); d ++;)) ტემპერატურა \u003d მილი (); ტემპერატურა \u003d ტემპერატურა - დრო; თუ (ტემპი\u003e 10000) (k\u003d 0; d\u003d 0; დრო\u003d მილი ();))

იმის უზრუნველსაყოფად, რომ თქვენი საკვები არ არის დამოკიდებული კოდზე, თქვენ უნდა დააზუსტოთ ეს პუნქტები. დაყენების ფუნქცია გამოიყენება პორტების მინიჭებისთვის. ხელმისაწვდომია ფუნქცია - Input_Pullup, რომელიც აუცილებელია პინის ძაბვის 5 ვ-ით გაზრდისთვის. ეს მუშაობს დამატებით რეზისტორით. არავის დაადანაშაულებენ რაიმე ხანმოკლე შეფერხებაში. მეტი სიმარტივისთვის რეკომენდებულია ორჯერ მოციმციმე ფუნქციის ჩაკეტვა. სხვადასხვა პროგრამების გაშვებისას, თქვენ უნდა სცადოთ სხვა ფუნქციები.

ფუნქციის მინიჭების შემდეგ, პორტებიდან სიგნალი იკითხება. ღილაკზე დაჭერის შემთხვევაში, იგი აღინიშნება ნომრით 1, ხოლო თუ არ არის დაჭერილი, მითითებული იქნება ნომრით 2. შემდეგ, გაანალიზდება ყველა მნიშვნელობა. მაგალითად, გამოჩნდა კომბინაცია, როგორიცაა 0,1,1. ეს ნიშნავს, რომ პირველი ღილაკი დაჭერილია, მაგრამ მეორე არ არის დაჭერილი. თუ ყველა მნიშვნელობა სწორად არის დაწერილი, მაშინ გონება 8 ასევე სწორია. შეამოწმეთ, რომ წინა პანელზე LED შუქი ანათებს. შემდეგი, თქვენ უნდა შეიყვანოთ სიმღერის კოდი, რომელიც გამოყენებული იქნება კარების გასახსნელად.

კოდის დარჩენილი ელემენტები გამოიყენება ექიმის მნიშვნელობის აღსადგენად. ეს ფუნქცია გაუქმდება, თუ კლავიშის ხელახლა დაჭერის შემდეგ გავიდა 10 წამზე მეტი. ამ კოდის გარეშე, შესაძლებელი იქნებოდა ყველა შესაძლო ვარიანტის გავლა, თუ გინდოდათ ბევრი მათგანის მიღება. ამ სტრუქტურის შექმნის შემდეგ აუცილებელია მის წინააღმდეგ პროტესტი. მეტი