Relais standaard bekrachtigd
6 berichten
• Pagina 1 van 1
Relais standaard bekrachtigd
Nieuw op het forum en nieuw met het gebruik van arduino.
Ik gebruik een arduino nano
Ik heb de volgende opstelling
Keypad 3x4
Lcd i2c
Relais
Als ik onderstaand code gebruik word het relais standaard bekrachtigd. Dit is Vlgs mij niet de bedoeling. De arduino nano blijft na een bepaalde tijd vasthangen. Ik weet even niet hoe ik dit kan veranderen
Code
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
#define Password_Length 8
int signalPin = 12;
char Data[Password_Length];
char Master[Password_Length] = "123A456";
byte data_count = 0, master_count = 0;
bool Pass_is_good;
char customKey;
const byte ROWS = 4;
const byte COLS = 4;
char hexaKeys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
LiquidCrystal_I2C lcd(0x21, 16, 2);
void setup(){
lcd.init();
lcd.backlight();
pinMode(signalPin, OUTPUT);
}
void loop(){
lcd.setCursor(0,0);
lcd.print("Enter Password:");
customKey = customKeypad.getKey();
if (customKey){
Data[data_count] = customKey;
lcd.setCursor(data_count,1);
lcd.print(Data[data_count]);
data_count++;
}
if(data_count == Password_Length-1){
lcd.clear();
if(!strcmp(Data, Master)){
lcd.print("Correct");
digitalWrite(signalPin, HIGH);
delay(5000);
digitalWrite(signalPin, LOW);
}
else{
lcd.print("Incorrect");
delay(1000);
}
lcd.clear();
clearData();
}
}
void clearData(){
while(data_count !=0){
Data[data_count--] = 0;
}
return;
}
Alvast bedankt voor de hulp
Ik gebruik een arduino nano
Ik heb de volgende opstelling
Keypad 3x4
Lcd i2c
Relais
Als ik onderstaand code gebruik word het relais standaard bekrachtigd. Dit is Vlgs mij niet de bedoeling. De arduino nano blijft na een bepaalde tijd vasthangen. Ik weet even niet hoe ik dit kan veranderen
Code
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
#define Password_Length 8
int signalPin = 12;
char Data[Password_Length];
char Master[Password_Length] = "123A456";
byte data_count = 0, master_count = 0;
bool Pass_is_good;
char customKey;
const byte ROWS = 4;
const byte COLS = 4;
char hexaKeys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
LiquidCrystal_I2C lcd(0x21, 16, 2);
void setup(){
lcd.init();
lcd.backlight();
pinMode(signalPin, OUTPUT);
}
void loop(){
lcd.setCursor(0,0);
lcd.print("Enter Password:");
customKey = customKeypad.getKey();
if (customKey){
Data[data_count] = customKey;
lcd.setCursor(data_count,1);
lcd.print(Data[data_count]);
data_count++;
}
if(data_count == Password_Length-1){
lcd.clear();
if(!strcmp(Data, Master)){
lcd.print("Correct");
digitalWrite(signalPin, HIGH);
delay(5000);
digitalWrite(signalPin, LOW);
}
else{
lcd.print("Incorrect");
delay(1000);
}
lcd.clear();
clearData();
}
}
void clearData(){
while(data_count !=0){
Data[data_count--] = 0;
}
return;
}
Alvast bedankt voor de hulp
Advertisement
- Gij Kieken
- Berichten: 631
- Geregistreerd: 15 Nov 2015, 11:54
Re: Relais standaard bekrachtigd
Het hangt er een beetje vanaf welke relais (module) je gebruikt.
Vele worden inverse logic gestuurd,wat zoveel betekent als, om de relais te bekrachtigen moet je sig. aan gnd koppelen.
Als je dit verandert in je sketch werkt het net andersom.
if(!strcmp(Data, Master)){
lcd.print("Correct");
digitalWrite(signalPin, LOW); //deze regel
delay(5000);
digitalWrite(signalPin, HIGH); //en deze regel
}
Vele worden inverse logic gestuurd,wat zoveel betekent als, om de relais te bekrachtigen moet je sig. aan gnd koppelen.
Als je dit verandert in je sketch werkt het net andersom.
if(!strcmp(Data, Master)){
lcd.print("Correct");
digitalWrite(signalPin, LOW); //deze regel
delay(5000);
digitalWrite(signalPin, HIGH); //en deze regel
}
Re: Relais standaard bekrachtigd
Het relais word dus bekrachtigd als de pin low is.
Moet ik de pin dan niet eerst high maken. Zodat relais niet bekrachtigd is.
Moet ik de pin dan niet eerst high maken. Zodat relais niet bekrachtigd is.
Re: Relais standaard bekrachtigd
Jazeker, en dat kan.
Het is toegestaan om een pin alvast 'HIGH' te zetten, nog voordat het als uitgang wordt gezet.
Als het Arduino board stroom krijgt, dan staat alles als hoogohmige ingang.
Als je meteen een pinMode() doet, dan wordt die pin een OUTPUT en wordt LOW, want dat is de default.
Als je echter eerst met een digitalWrite() die pin alvast klaar zet voor HIGH, en dan pinMode(), dan gaat de pin meteen van hoogohmig naar HIGH.
Het is iets uitgebreider dan wat ik hierboven schrijf.
Wanneer een digitalWrite() wordt gedaan op een ingang, dan wordt de interne pullup weerstand 'aan' of 'uit' gezet.
Dus de ingang was eerst INPUT en hoogohmig. Die pin alvast klaar zetten voor HIGH met digitalWrite() zet de pullup weerstand aan, dan wordt de pin zachtjes HIGH. Dan de pinMode() en dan wordt het een sterke HIGH uitgang.
Het is toegestaan om een pin alvast 'HIGH' te zetten, nog voordat het als uitgang wordt gezet.
Als het Arduino board stroom krijgt, dan staat alles als hoogohmige ingang.
Als je meteen een pinMode() doet, dan wordt die pin een OUTPUT en wordt LOW, want dat is de default.
Als je echter eerst met een digitalWrite() die pin alvast klaar zet voor HIGH, en dan pinMode(), dan gaat de pin meteen van hoogohmig naar HIGH.
- Code: Alles selecteren
void setup()
{
digitalWrite( signalPin, HIGH); // preset to HIGH
pinMode( signalPin, OUTPUT); // make it OUTPUT and use the preset value
}
Het is iets uitgebreider dan wat ik hierboven schrijf.
Wanneer een digitalWrite() wordt gedaan op een ingang, dan wordt de interne pullup weerstand 'aan' of 'uit' gezet.
Dus de ingang was eerst INPUT en hoogohmig. Die pin alvast klaar zetten voor HIGH met digitalWrite() zet de pullup weerstand aan, dan wordt de pin zachtjes HIGH. Dan de pinMode() en dan wordt het een sterke HIGH uitgang.
Re: Relais standaard bekrachtigd
Kan het kwaad dat het relais 99,9% van de tijd bekrachtigd is? Zo niet kan ik het zo laten. Hoe zit het dan met stroom verbruik.
Ps. Bovenstaande verhaal is duidelijk bedankt hiervoor
Ps. Bovenstaande verhaal is duidelijk bedankt hiervoor
Re: Relais standaard bekrachtigd
Dat geeft niet.
Je hebt waarschijnlijk apparaten in huis met een relais dat altijd aan staat.
Als het relais een omschakelcontact heeft, dan kun je misschien dat andere contact gebruiken.
De stroom zul je moeten meten.
De Arduino 5V pin is waarschijnlijk te zwak om een relais van stroom te voorzien. Die 5V pin is voor sensors en schakelaars en zo.
Je hebt waarschijnlijk apparaten in huis met een relais dat altijd aan staat.
Als het relais een omschakelcontact heeft, dan kun je misschien dat andere contact gebruiken.
De stroom zul je moeten meten.
De Arduino 5V pin is waarschijnlijk te zwak om een relais van stroom te voorzien. Die 5V pin is voor sensors en schakelaars en zo.
6 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 54 gasten