Как отредактировать этот код ИК-датчика в COINSLOT sensor
Проект похож на защищенный PiggyBank, но он будет считать монеты внутри него. Im с помощью датчика монет по умолчанию он имеет 5 В, а затем переходит на zer, если вставлен с монетой. У меня есть 2 кода: один был из моего старого проекта, а второй-из кода coinslot, полученного на youtube.
Я надеюсь, что кто-то может подсказать мне, где снять некоторые коды, а затем добавить их в один lsit кода. Поведение проекта -Start > Display Total : Amount >> если я разблокирую соленоид, то на нем появится приветственное "NAME" . Надеюсь, вы поймете мою идею. Какой-то код внутри соленоида был не идеален, жаль, что я просто получаю его от скрата без должного знания.
Это код для ПОДКЛЮЧЕНИЯ ОТПЕЧАТКА ПАЛЬЦА К ЭЛЕКТРОМАГНИТНОМУ ЗАМКУ
#include <Adafruit_Fingerprint.h> //Libraries needed
#include <SoftwareSerial.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27 //LCD i2c stuff
#define BACKLIGHT_PIN 3
#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 7
int in2 = 4;
int But1=8; // In order to add a push button I got the 5v from the pin 8 instead of "5v" arduino pin
int But2=9;
String Names[] = { "RAVEN", "Surtr", "Tech",}; //Those are the names affected to the fingertemplates IDs
//The first on which is Names[0] : Yassine has the ID 1 in the fingerprint sensor
SoftwareSerial mySerial(2, 3); //Fingerprint sensor wiring RX 3, TX 2
LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin); //LCD declaring
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial); //Fingerprint sensor declaring
void setup()
{
pinMode(in2, OUTPUT);
digitalWrite(in2, HIGH);
pinMode(But1, OUTPUT); //Push button stuff, I made the pin 8 permanent LOW level
digitalWrite(But1,LOW);
pinMode(But2,INPUT_PULLUP); //And I read the button state on pin 9
Serial.begin(9600); //Serial begin incase you need to see something on the serial monitor
finger.begin(57600); //Sensor baude rate
lcd.begin (16,2);
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);
lcd.home();
finger.getTemplateCount(); //Counts the number of templates stored in the sensor flash memory
delay(2000);
introScreen();
}
void loop()
{
int result = getFingerprintIDez(); //This function keeps looping and waiting for a fingerprint to be put on the sensor
//delay(50);
bool Button1=digitalRead(But2); //Reading the state of the pushbutton
if(Button1==LOW or result >= 0){
//If the button is pressed it opens the doorlock as the button is meant to be inside
OpenDoor();
introScreen();
}
}
void introScreen()
{
lcd.clear();
lcd.print("Place finger");
}
//Main function taken from the "fingerprint" example and modified
//Only the modifications are commented
int getFingerprintIDez() {
uint8_t p = finger.getImage(); //Image scanning
if (p != FINGERPRINT_OK) return -1;
p = finger.image2Tz(); //Converting
if (p != FINGERPRINT_OK) return -1;
lcd.clear(); //And here we write a message or take an action for the denied template
p = finger.fingerFastSearch(); //Looking for matches in the internal memory
if (p != FINGERPRINT_OK){ //if the searching fails it means that the template isn't registered
lcd.print("Access denied");
delay(2000);
introScreen();
return -1;
}
//If we found a match we proceed in the function
lcd.print("Welcome"); //Printing a message for the recognized template
lcd.setCursor(2,1);
lcd.print(Names[finger.fingerID-1]); //Then print the name we gave it and the -1 is to remove the shift as the ID starts from "1" but the array from "0"
return finger.fingerID;
}
/*The two following functions depends on your locking system
*mine has a DC motor that should turn in both ways for opening and closing
*that's why I'm using H bridge, you could have a solenoid with a transistor
*then you'll need only opening sequence but controlling the transistor
*as the closing is spring loaded...
*/
void OpenDoor(){
digitalWrite(in2, LOW); // turn on motor
delay(5000);
digitalWrite(in2, HIGH); // turn off motor
}
Этот код предназначен для COINSLOT
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#include <EEPROM.h>
#define coinSlot 6
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7); // 0x27 is the I2C bus address for an unmodified module
int coinCount = 0;
int coinSlotSignal;
int requiredCoins = 1;
boolean coinInserted = false;
void setup() {
Serial.begin(9600);
pinMode(coinSlot, INPUT_PULLUP);
lcd.setBacklightPin(3,POSITIVE);
lcd.setBacklight(LOW); // You can turn the backlight off by setting it to LOW instead of HIGH
lcd.begin(16, 2);
lcd.write(EEPROM.read(5));
}
void loop() {
while(!coinInserted){
coinSlotSignal = digitalRead(coinSlot);
if(coinSlotSignal < 1) {
coinCount += 1;
coinInserted = true;
EEPROM.write(0,coinCount);
Serial.println(EEPROM.read(0));
lcd.setCursor(0,0);
lcd.print("TOTAL:");
lcd.setCursor(0,1);
lcd.print(coinCount);
}
}
while(coinInserted) {
coinSlotSignal = digitalRead(coinSlot);
if(coinSlotSignal >0) {
coinInserted = false;
}
}
if(coinCount >= requiredCoins) {
delay(1500);
}
}
@Raven Tenepre, 👍1
Обсуждение0
- Чувствительный к силе резистор Arduino с ЖК-дисплеем
- Почему жк-дисплей не показывает никакого выхода?
- Ультразвуковой датчик Arduino и ЖК-дисплей - Нужна помощь -
- Датчики I2C не работают при подключении к LCD дисплею 20X04
- Проблема стабильности кода прерываний, связанного с датчиком расхода
- Почему ЖК-дисплей 16x2 не может отображать «утечку воды», когда датчик дождя обнаруживает воду?
- ЖК-дисплей отображает неверный символ при подсчете оборотов
- Я работал над проектом и получил ошибку компиляции для платы arduino uno. пожалуйста, помогите
у вас не может быть двух " пустых настроек ()"... поместите коды из обоих в один ... то же самое с " пустым циклом()`, @jsotola
пожалуйста, исправьте отступ в вашем коде ... будет намного проще следить за потоком кода, и это затруднит совершение ошибок, @jsotola
почему ПОВЕДЕНИЕ ПРОЕКТА ничего не говорит о слоте монет? ... является ли coinslot частью проекта или нет? ... в нем также ничего не говорится о соленоиде блокировки...... не очень хорошее описание поведения проекта .... четкое, подробное описание поведения проекта обычно переводится в код почти напрямую, @jsotola
У меня есть 2 отдельных кода проекта, сэр, но я получил код coinslot в Google, я надеюсь, что как потопить 2 кода в 1, чтобы запустить проект, @Raven Tenepre
Неясно, в чем проблема. Если устройство для монетного слота имеет логический выход, основанный на внутреннем датчике, затем подключите этот выход к Arduino и обработайте его как любой другой логический вход-в чем конкретная проблема?, @Dave Newton
Я не знаю, как объединить 2 кода проекта в 1 код :(, @Raven Tenepre
Я прочитал статью, сэр, и попытался утопить код, но это дает краткую информацию о проблеме, из-за которой я не могу понять, почему она вызвала это, но пытаюсь увидеть код ошибки, в котором говорится, что "ожидалось, что неквалифицированный-идентификатор перед "в то время как", @Raven Tenepre