Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Toetsenblokdeurslot met veranderlijke code

Componenten en benodigdheden

Arduino UNO
× 1
4x4 toetsenbordmatrix
× 1
Algemene drukknop
× 1
LCD i²c
× 1
Lineair magneetslot
× 1
IRF510N MOSFET
× 1
1-kanaals relais
× 1

Benodigde gereedschappen en machines

Broodplank, 170 pins
10 St. Jumper Wire Kit, 5 cm lang

Over dit project

Hallo, en welkom bij deze tutorial (Ja, het is oud maar klassiek), vandaag maak ik een deurslotproject op basis van een Arduino-bord, toetsenbord, LCD i²c-scherm, en ik gebruik voor het slot een solenoïde en een relais, je kunt mijn tutorial bekijken over het deurslot met vingerafdrukken waarbij ik een slot gebruikte dat een gelijkstroommotor gebruikt, dus het hangt af van je sluitsysteem dat je een bedrading, codes moet kiezen en deze moet aanpassen.

N.B:Voor een echt project raad ik het gebruik van een solenoïde helemaal niet aan, maar hack liever een slot dat kan worden geopend door zowel elektronisch als mechanisch slot en pas je project daarop aan.

Onderdelen

Dus voor dit project hebben we die componenten nodig, samen met enkele startdraden, en een voeding van 12V Sorry dat ik het hier niet heb toegevoegd:

De drukknop is bedoeld om het slot van binnenuit te openen, je kunt het verwijderen als je wilt, de weerstand is voor debounce.

Ik heb een 4×4-toetsenbord gebruikt, je kunt 3×4 gebruiken, maar je moet iets in de code wijzigen, zoals voor de bevestiging. Ik gebruik ‘A’, je kunt het veranderen in ‘*’ of ‘#’.

De solenoïde wordt gevoed door een externe 12V-voeding en wordt aangedreven door de IRF510N MOSFET-transistor.

De transistor wordt gebruikt als schakelaar en het is beter om een ​​N-kanaal te gebruiken, de IRF510N is behoorlijk populair bij gebruik met een Arduino, wanneer je een 5V-spanning over de poort en de bron zet, wordt de transistor als een gesloten schakelaar tussen de Afvoer en de bron, en het heeft geen weerstand nodig zoals bipolaire.

En als er geen spanning op staat, werkt de transistor als een open schakelaar, en zo regelen we de solenoïde.

Voor het andere voorbeeld gebruik ik een 1-kanaals relaismodule, deze werkt met 3,3 V, en we besturen de invoer zoals de transistor, het enige verschil is dat ze omgekeerd zijn (we zullen zien in de code).

Algoritme stroomdiagram

Om dingen gemakkelijk te begrijpen, is hier het stroomschema, het is niet volledig gedetailleerd, maar het is een overzicht van de code.

N.B:U kunt het relais gebruiken om elk elektrisch slot tot 250VAC te bedienen, u kunt het ook gebruiken om de solenoïde te bedienen...

De codes zijn precies hetzelfde het enige is dat je schakelt tussen (LAAG en HOOG) om het slot te openen.

Onthoud de eerste keer dat u de code moet uploaden en de toegangscode moet wijzigen, verwijder vervolgens enkele regels (lees de code om ze te vinden (ze zijn in de configuratie)) en upload de code opnieuw zodat deze de toegangscode van de EEPROM kan lezen. HET IS SLECHTS EENMAAL GEDAAN .

Je kunt ook de codelengte wijzigen, eerst heb ik er vier cijfers van gemaakt, je kunt deze wijzigen van de standaardcode, zoals ik in de code de "sizeof(code)" heb gebruikt in plaats van "4". U kunt een 4-cijferige code niet wijzigen in een 6-cijferige toegangscode, wijzig eerst de initiële toegangscode van de codebron.

Test

Je vindt de test in onderstaande afbeeldingen, navigeer er doorheen

Nou, dat was de test van het project, het is hetzelfde voor de solenoïde of het relais, en de drukknop gaat van binnenuit open als je wilt of je kunt hem verwijderen.

Ik hoop dat het nuttig is en als je een probleem of vraag hebt, laat dan een reactie achter.

Code

  • Keypad_doorlock_solenoid.ino
  • Keypad_doorlock_relay.ino
Keypad_doorlock_solenoid.inoArduino
Vergeet niet om eerst de code te uploaden en dan regel 62 t/m 64 te verwijderen en opnieuw te uploaden, dit hoeft maar één keer.
/* Deze code werkt met 4x4 Keypad Matrix, LCD ic, IRF510N-transistor en een drukknop * Het is een slot waar de transistor in rijdt een magneetslot dat u kunt openen met de juiste code * of door de drukknop van binnenuit * De code kan direct worden gewijzigd met het toetsenbord en hoeft niet opnieuw te worden geüpload * Code wordt opgeslagen in EEPROM * Raadpleeg www.surtrtech.com voor meer details */#include #include #include #define Solenoid 11 //Eigenlijk de poort van de transistor die de solenoïde bestuurt#define O_Button 10 //Push Button #define I2C_ADDR 0x27 //I2C-adres, u moet de code gebruiken om het adres eerst (0x27) hier te scannen#define BACKLIGHT_PIN 3 // LCD-pinnen declareren#define En_pin 2#define Rw_pin 1#define Rs_pin 0#define D4_pin 4#define D5_pin 5#define D6_pin 6#define D7_pin 7const byte numRows=4; // aantal rijen op het toetsenbordconst byte numCols=4; // aantal kolommen op het toetsenbordchar keymap [numRows][numCols]={{'1', '2', '3', 'A'}, {'4', '5', '6', 'B '}, {'7', '8', '9', 'C'},{'*', '0', '#', 'D'}};char ingedrukt; //Waar de sleutels worden opgeslagen, verandert deze heel vaakchar code []={'6','6','0','1'}; //De standaardcode, u kunt deze wijzigen of er een 'n'-cijferige code van maken:onechar code_buff1[sizeof(code)]; // Waar de nieuwe sleutel wordt opgeslagenchar code_buff2 [sizeof(code)]; // Waar de nieuwe sleutel opnieuw wordt opgeslagen, zodat deze wordt vergeleken met de vorige kort a=0,i=0,s=0,j=0; // Variabelen gebruikt laterbyte rowPins [numRows] ={9,8,7,6}; // Rijen 0 tot 3 // als u uw pinnen wijzigt, moet u deze toobyte wijzigen colPins[numCols]={5,4,3,2}; // Kolommen 0 tot 3LiquidCrystal_I2C lcd (I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin); Toetsenbord myKeypad =Toetsenbord (makeKeymap (keymap), rowPins, colPins, num Crows); .begin (16,2); lcd.setBacklightPin (BACKLIGHT_PIN,POSITIEF); lcd.set Achtergrondverlichting (HOOG); //Verlichting achtergrondverlichting lcd.home (); lcd.print("Stand-by"); // Wat er op het LCD-scherm staat, kunt u pinMode (Solenoid, OUTPUT) wijzigen; pinMode(O_Knop,INPUT); // for(i=0; i 
Keypad_doorlock_relay.inoArduino
Vergeet niet om eerst de code te uploaden en dan regel 62 t/m 64 te verwijderen en opnieuw te uploaden, dit hoeft maar één keer.
/* Deze code werkt met 4x4 Keypad Matrix, LCD ic, relaismodule en een drukknop * Het is een slot waar het relais kan bedien een slot dat u kunt openen met de juiste code * of door de drukknop van binnenuit * De code kan direct worden gewijzigd met het toetsenbord en hoeft niet opnieuw te worden geüpload * Code wordt opgeslagen in EEPROM * Raadpleeg www.surtrtech.com voor meer details */#include #include #include #define Relay 11 //Controls the Relay#define O_Button 10 //Push Button#define I2C_ADDR 0x27 //I2C adres, moet u de code gebruiken om het adres eerst (0x27) hier te scannen#define BACKLIGHT_PIN 3 // LCD-pinnen declareren#define En_pin 2#define Rw_pin 1#define Rs_pin 0#define D4_pin 4#define D5_pin 5#define D6_pin 6# definieer D7_pin 7const byte numRows=4; // aantal rijen op het toetsenbordconst byte numCols=4; // aantal kolommen op het toetsenbordchar keymap [numRows][numCols]={{'1', '2', '3', 'A'}, {'4', '5', '6', 'B '}, {'7', '8', '9', 'C'},{'*', '0', '#', 'D'}};char ingedrukt; //Waar de sleutels worden opgeslagen, verandert deze heel vaakchar code []={'6','6','0','1'}; //De standaardcode, u kunt deze wijzigen of er een 'n'-cijferige code van maken:onechar code_buff1[sizeof(code)]; // Waar de nieuwe sleutel wordt opgeslagenchar code_buff2 [sizeof(code)]; // Waar de nieuwe sleutel opnieuw wordt opgeslagen, zodat deze wordt vergeleken met de vorige kort a=0,i=0,s=0,j=0; // Variabelen gebruikt laterbyte rowPins [numRows] ={9,8,7,6}; // Rijen 0 tot 3 // als u uw pinnen wijzigt, moet u deze toobyte wijzigen colPins[numCols]={5,4,3,2}; // Kolommen 0 tot 3LiquidCrystal_I2C lcd (I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin); Toetsenbord myKeypad =Toetsenbord (makeKeymap (keymap), rowPins, colPins, num Crows); .begin (16,2); lcd.setBacklightPin (BACKLIGHT_PIN,POSITIEF); lcd.set Achtergrondverlichting (HOOG); //Verlichting achtergrondverlichting lcd.home (); lcd.print("Stand-by"); // Wat er op het LCD-scherm staat, kunt u pinMode (Relay, OUTPUT) wijzigen; pinMode(O_Knop,INPUT); // for(i=0; i  

Schema's


Productieproces

  1. Bankkluis
  2. Maak een automatisch sluitende kantoordeur met smartphone-nabijheidssensor
  3. Multitemperatuursensor
  4. MotionSense
  5. 3D-printer brandveiligheid
  6. Op wachtwoord gebaseerd deurslot
  7. IoT-meter met Arduino, Yaler en IFTTT
  8. Arduino afstotende elektromagnetische levitatie
  9. Grijperbot met afstandsbediening
  10. Microcontrollers Lab
  11. CoroFence - Thermische Detector🖖