Wie kan mij helpen
6 berichten
• Pagina 1 van 1
Wie kan mij helpen
Heb een alarm installatie in mekaar gebasteld, geeft geen fouten maar zie niks op display .
waar loopt het spaak ?
waar loopt het spaak ?
- Code: Alles selecteren
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Password.h>
#include <Keypad.h>
#include <Keypad_I2C.h>
#include <Servo.h>
#define Buzzer 13
#define trigPin 9
#define echoPin 10
int i2caddress = 0x38;
int passwd_pos = 15;
int ledDelay = 50;
LiquidCrystal_I2C lcd(0x27, 16, 2);
Password password = Password( "0000");
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{ '1', '2', '3', 'A'},
{ '4', '5', '6', 'B'},
{ '7', '8', '9', 'C'},
{ '*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {0, 1, 2, 3};
byte colPins[COLS] = {4, 5, 6, 7};
Keypad_I2C keypad = Keypad_I2C( makeKeymap(keys), rowPins, colPins, ROWS, COLS, i2caddress );
int pirPin1 = 2;
int pirPin2 = 3;
int reedPin1 = 4;
int reedPin2 = 5;
int BluePin = 6;
int GreenPin = 7;
int RedPin = 8;
int alarmStatus = 0;
int zone = 0;
int alarmActive = 0;
void setup() {
//lcd.init();
Serial.begin(9600);
lcd.begin();
Wire.begin();
lcd.backlight();
pinMode(Buzzer, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(RedPin, OUTPUT);
pinMode(GreenPin, OUTPUT);
pinMode(BluePin, OUTPUT);
pinMode(Buzzer, OUTPUT);
pinMode(pirPin1, INPUT); //Slaapkamers
pinMode(pirPin2, INPUT); //Deur voor
pinMode(reedPin1, INPUT); //Deur Achter
pinMode(reedPin2, INPUT); //woonkamer&keuken
digitalWrite(RedPin, LOW);
digitalWrite(GreenPin, HIGH);
digitalWrite(Buzzer, LOW);
keypad.addEventListener(keypadEvent);
}
void loop(void) {
keypad.getKey();
if (alarmActive == 1) {
if (digitalRead(pirPin1) == HIGH)
{
zone = 0;
alarmTriggered();
}
if (digitalRead(reedPin1) == LOW)
{
zone = 1;
alarmTriggered();
}
if (digitalRead(reedPin2) == LOW)
{
zone = 2;
alarmTriggered();
}
if (digitalRead(pirPin2) == HIGH)
{
zone = 3;
alarmTriggered();
}
}
}
void keypadEvent(KeypadEvent eKey) {
switch (keypad.getState()) {
case PRESSED:
if (passwd_pos - 15 >= 5) {
return ;
}
lcd.setCursor((passwd_pos++), 0);
switch (eKey) {
case '#':
passwd_pos = 15;
checkPassword();
break;
case '*':
password.reset();
passwd_pos = 15;
break;
default:
password.append(eKey);
lcd.print("*");
}
}
}
void alarmTriggered() {
int expected_pos;
int incr;
digitalWrite(Buzzer, HIGH);
password.reset();
alarmStatus = 1;
lcd.clear();
lcd.setCursor(0, 2);
lcd.print(" SYSTEM TRIGGERED ");
lcd.setCursor(0, 4);
if (zone == 1)
{
lcd.print(" Front Door Open ");
delay(1000);
}
if (zone == 0) {
lcd.print("Bedroom ");
delay(1000);
}
else if (zone == 2) {
lcd.print("Back door Open");
delay(1000);
}
else if (zone == 3) {
lcd.print("Room & Kitchen");
delay(1000);
StrokeLight();
}
}
void StrokeLight() {
digitalWrite(RedPin, HIGH);
delay(ledDelay);
digitalWrite(RedPin, LOW);
delay(ledDelay);
digitalWrite(RedPin, HIGH);
delay(ledDelay);
digitalWrite(RedPin, LOW);
delay(ledDelay);
digitalWrite(RedPin, HIGH);
delay(ledDelay);
digitalWrite(RedPin, LOW);
delay(ledDelay);
delay(10);
digitalWrite(BluePin, HIGH);
delay(ledDelay);
digitalWrite(BluePin, LOW);
delay(ledDelay);
digitalWrite(BluePin, HIGH);
delay(ledDelay);
digitalWrite(BluePin, LOW);
delay(ledDelay);
digitalWrite(BluePin, HIGH);
delay(ledDelay);
digitalWrite(BluePin, LOW);
delay(ledDelay);
}
void checkPassword() {
if (password.evaluate())
{
if (alarmActive == 0 && alarmStatus == 0)
{
activate();
}
else if ( alarmActive == 1 || alarmStatus == 1) {
deactivate();
}
}
else {
invalidCode();
}
}
void invalidCode()
{
password.reset();
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("INVALID CODE!");
lcd.setCursor(5, 2);
lcd.print("TRY AGAIN!");
digitalWrite(GreenPin, LOW);
digitalWrite(RedPin, HIGH);
delay(2000);
digitalWrite(RedPin, LOW);
delay(1000);
displayCodeEntryScreen();
}
void activate()
{
if ((digitalRead(reedPin1) == HIGH) && (digitalRead(reedPin2) == HIGH)) {
digitalWrite(RedPin, HIGH);
digitalWrite(GreenPin, LOW);
digitalWrite(2, HIGH);
lcd.setCursor(0, 0);
lcd.print("SYSTEM ACTIVE!");
alarmActive = 1;
password.reset();
delay(2000);
}
else {
deactivate();
}
}
void deactivate()
{
alarmStatus = 0;
digitalWrite(RedPin, LOW);
digitalWrite(GreenPin, HIGH);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" SYSTEM DEACTIVATED!");
digitalWrite(Buzzer, LOW);
alarmActive = 0;
password.reset();
delay(5000);
displayCodeEntryScreen();
}
void displayCodeEntryScreen()
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Enter PIN:");
}
void printDigits(int digits)
{
lcd.print(':');
if (digits < 10)
lcd.print('0');
lcd.print(digits);
}
Advertisement
- Gij Kieken
- Berichten: 631
- Geregistreerd: 15 Nov 2015, 11:54
Re: Wie kan mij helpen
Contrast van de Lcd bijregelen.
Re: Wie kan mij helpen
in je code staat het volgende "LiquidCrystal_I2C lcd(0x27, 16, 2);"
is het printje (wat aan je lcd verbonden is) ook ingesteld op 0x27 ?
controleer ook het printje van je keypad of deze juist ingesteld is
is het printje (wat aan je lcd verbonden is) ook ingesteld op 0x27 ?
controleer ook het printje van je keypad of deze juist ingesteld is
Met vriendelijke groet Arjan
Re: Wie kan mij helpen
Hierin gebruik ik twee adressen een display 27 en keyPad 20 .
zoals je ziet in script deze lees ik uit met een progje die eens heb gemaakt die de adressen uitleest en dat zijn dus deze twee.
zoals je ziet in script deze lees ik uit met een progje die eens heb gemaakt die de adressen uitleest en dat zijn dus deze twee.
Re: Wie kan mij helpen
Ik zoek me een breuk waar dit fenomeen nu aan licht, of ik moet hem opnieuw opbouwen .
hoop dat toch iemand mijn fout ziet.
hoop dat toch iemand mijn fout ziet.
Re: Wie kan mij helpen
Als je vast loopt, dan doe je een stap terug.
Als je helemaal vast zit, dan doe van voor af aan een paar kleine testjes, waarbij je steeds één ding test.
Allereerst weet ik niet wat het probleem is. Is het probleem dat het display niet werkt ?
Je zou bijvoorbeeld dit kunnen doen:
Verwijder alles van het Arduino bordje, en verbindt alleen het display.
Draai de i2c scanner: https://playground.arduino.cc/Main/I2cScanner.
Laat die i2c scanner een tijdje draaien, en beweeg eens met de draden, of het stabiel blijft.
Gebruik het gevonden i2c address.
Gebruik daarna een meegeleverd voorbeeld dat bij de bibliotheek van het i2c display zit.
Zie je al iets op het scherm ?
Als je helemaal vast zit, dan doe van voor af aan een paar kleine testjes, waarbij je steeds één ding test.
Allereerst weet ik niet wat het probleem is. Is het probleem dat het display niet werkt ?
Je zou bijvoorbeeld dit kunnen doen:
Verwijder alles van het Arduino bordje, en verbindt alleen het display.
Draai de i2c scanner: https://playground.arduino.cc/Main/I2cScanner.
Laat die i2c scanner een tijdje draaien, en beweeg eens met de draden, of het stabiel blijft.
Gebruik het gevonden i2c address.
Gebruik daarna een meegeleverd voorbeeld dat bij de bibliotheek van het i2c display zit.
Zie je al iets op het scherm ?
6 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: itisepa en 96 gasten