Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1. Način (original)
- ////////////////////////////////////////////////////////////////
- #include <LiquidCrystal.h>
- #include <Wire.h>
- const int rs=5,en=6,d4=7,d5=8,d6=9,d7=10;
- LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
- volatile int brojSlobodnihMjesta=2;
- String brojSlobodnihMjestaToString = String(brojSlobodnihMjesta);
- void setup() {
- Serial.begin(9600);
- lcd.begin(16,2); // Inicijalizacija LCD displaya
- lcd.setCursor(0,0);
- lcd.write("Broj mjesta:");
- pinMode(13,OUTPUT); // Crvena Ledica kao indikator
- pinMode(12,OUTPUT); // Zelena Ledica kao indikator
- pinMode(2,INPUT_PULLUP); // tipkalo za označavanje ulaska u garažu
- pinMode(3,INPUT_PULLUP); // tipkalo za označavanje izlaska iz garažu
- attachInterrupt(digitalPinToInterrupt(2),povecajBrojSlobodnihMjesta,RISING);
- attachInterrupt(digitalPinToInterrupt(3),smanjiBrojSlobodnihMjesta,RISING);
- pinMode(4,OUTPUT); //relej
- lcd.noCursor();
- }
- void loop() {
- lcd.noCursor();
- if(brojSlobodnihMjesta==0){
- digitalWrite(13,HIGH); //pali crvenu ako nema slobodnog mjesta u garazi
- digitalWrite(12,LOW); //analogno gasi zelenu
- }
- else{
- digitalWrite(13,LOW); //analogno gasi crvenu
- digitalWrite(12,HIGH); //pali zelenu jer ima mjesta
- }
- }
- void povecajBrojSlobodnihMjesta(){
- brojSlobodnihMjesta++;
- if(brojSlobodnihMjesta>2){
- brojSlobodnihMjesta=2;
- }
- ispisMjesta();
- digitalWrite(4, HIGH);
- delay(1000);
- digitalWrite(4,LOW);
- Serial.println(brojSlobodnihMjesta);
- }
- void smanjiBrojSlobodnihMjesta(){
- if(brojSlobodnihMjesta==0){
- Serial.println("Greška");
- }
- else{
- brojSlobodnihMjesta--;
- ispisMjesta();
- digitalWrite(4, HIGH);
- delay(1000);
- digitalWrite(4,LOW);
- Serial.println(brojSlobodnihMjesta);
- }
- }
- void ispisMjesta(){
- lcd.setCursor(1,0);
- lcd.print(brojSlobodnihMjestaToString);
- lcd.noCursor();
- }
- /////////////////////////////////////////////////////////////////////////////////////////
- 2.način - ne mogu izmjeniti sve jer neki elementi rade samo na 1 način al sam strukturirao kod drukcije
- /////////////////////////////////////////////////////////////////////////////////////////
- #include <LiquidCrystal.h>
- #include <Wire.h>
- const int rs=5,en=6,d4=7,d5=8,d6=9,d7=10;
- LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
- volatile int brojZauzetihMjesta=0;
- volatile int brojSlobodnihMjesta=2-brojZauzetihMjesta;
- String ispis=String(brojSlobodnihMjesta);
- void setup() {
- Serial.begin(9600);
- lcd.begin(16,2); // Inicijalizacija LCD displaya
- lcd.setCursor(0,0);
- lcd.print("Slobodna mjesta:");
- pinMode(13,OUTPUT); // Crvena Ledica kao indikator
- pinMode(12,OUTPUT); // Zelena Ledica kao indikator
- pinMode(2,INPUT_PULLUP); // tipkalo za označavanje ulaska u garažu
- pinMode(3,INPUT_PULLUP); // tipkalo za označavanje izlaska iz garažu
- pinMode(4,OUTPUT); //relej
- }
- void loop() {
- int stanjeTipkalaVan=digitalRead(3);
- int stanjeTipkalaUnutra=digitalRead(2);
- if(stanjeTipkalaUnutra==0){
- povecajBrojZauzetihMjesta();
- Serial.println(brojZauzetihMjesta);
- azurirajLCD();
- upaliRelej();
- if(brojZauzetihMjesta<2){
- postaviLEDImaMjesta();
- }
- else{
- postaviLEDNemaMjesta();
- }
- }
- if(stanjeTipkalaVan==0){
- smanjiBrojZauzetihMjesta();
- Serial.println(brojZauzetihMjesta);
- azurirajLCD();
- upaliRelej();
- if(brojZauzetihMjesta<2){
- postaviLEDImaMjesta();
- }
- else{
- postaviLEDNemaMjesta();
- }
- }
- }
- void smanjiBrojZauzetihMjesta(){
- if(brojZauzetihMjesta==0)
- {
- Serial.println("Greska");
- }
- else{
- brojZauzetihMjesta--;
- }
- }
- void povecajBrojZauzetihMjesta(){
- brojZauzetihMjesta++;
- if(brojZauzetihMjesta>2)
- {
- brojZauzetihMjesta=2;
- Serial.println("Parking je pun");
- }
- }
- void azurirajLCD(){
- lcd.setCursor(1,0);
- lcd.print(ispis);
- lcd.noCursor();
- }
- void upaliRelej(){
- digitalWrite(4,HIGH);
- delay(500);
- digitalWrite(4,LOW);
- }
- void postaviLEDNemaMjesta(){
- analogWrite(13,255);
- analogWrite(12,0);
- }
- void postaviLEDImaMjesta(){
- analogWrite(13,0);
- analogWrite(12,255);
- }
Add Comment
Please, Sign In to add comment