Alarmni sustav temeljen na težini proizvoda - nastava.tvz.hr · Tehničko velučilište u Zagrebu,...
Transcript of Alarmni sustav temeljen na težini proizvoda - nastava.tvz.hr · Tehničko velučilište u Zagrebu,...
Tehničko velučilište u Zagrebu,
Elektrotehnika,
Automatizacija i procesno računarstvo
Projektiranje i primjena ugradbenih računalnih sustava
Seminarski rad
Andrej Jozić Matija Lastovčić 1.
08.06.2015.
Alarmni sustav temeljen
na težini proizvoda
Tehničko velučilište u Zagrebu,
Elektrotehnika,
Automatizacija i procesno računarstvo
Projektiranje i primjena ugradbenih računalnih sustava
Seminarski rad
Andrej Jozić Matija Lastovčić 2.
08.06.2015.
Korišteni elementi:
• Arduino Duemilanove
• Piezzozvučnik
• Potenciometar 10kΩ
• Lcd display (16x2)
• Hx711
• Senzor mjerenja
• Tipkalo
Shema spoja:
Tehničko velučilište u Zagrebu,
Elektrotehnika,
Automatizacija i procesno računarstvo
Projektiranje i primjena ugradbenih računalnih sustava
Seminarski rad
Andrej Jozić Matija Lastovčić 3.
08.06.2015.
Programski kod:
#include "Hx711.h"
#include "math.h"
#include <LiquidCrystal.h>
int DOUT=3;
int PD_SCK=4;
int buzzer = 5;
int provjera = 2;
int dozvola = 6;
int temp=1,j,dozcount;
bool toggle=0;
int mjeri = 0;
int starimjeri = 0;
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
Hx711 scale(DOUT, PD_SCK);
void setup()
//set timer2 interrupt at 8kHz
TCCR2A = 0;// set entire TCCR2A register to 0
TCCR2B = 0;// same for TCCR2B
TCNT2 = 0;//initialize counter value to 0
// set compare match register for 8khz increments
OCR2A = 249;// = (16*10^6) / (8000*8) - 1 (must be <256)
// turn on CTC mode
Tehničko velučilište u Zagrebu,
Elektrotehnika,
Automatizacija i procesno računarstvo
Projektiranje i primjena ugradbenih računalnih sustava
Seminarski rad
Andrej Jozić Matija Lastovčić 4.
08.06.2015.
TCCR2A |= (1 << WGM21);
// Set CS21 bit for 8 prescaler
TCCR2B |= (1 << CS21);
// enable timer compare interrupt
TIMSK2 |= (1 << OCIE2A);
sei();//allow interrupts
lcd.begin(16,2);
pinMode(buzzer, OUTPUT);
pinMode(provjera, INPUT);
pinMode(dozvola, INPUT);
ISR(TIMER2_COMPA_vect) //timer interupt funkcija
j++;
if(j==8000) j=0;
void loop()
if(digitalRead(dozvola)==HIGH && temp==1) dozcount=10;
if(j>=7950/* || (j>=3980 && j<=4010)*/)
starimjeri = mjeri;
Tehničko velučilište u Zagrebu,
Elektrotehnika,
Automatizacija i procesno računarstvo
Projektiranje i primjena ugradbenih računalnih sustava
Seminarski rad
Andrej Jozić Matija Lastovčić 5.
08.06.2015.
mjeri = round(scale.getGram());
lcd.setCursor(0,1);
lcd.print(mjeri);
lcd.print(" g ");
if(toggle==0) toggle=1;
else toggle=0;
if(dozcount!=0) dozcount--;
if(((fabs(mjeri-starimjeri) > 5 )|| temp==0) && dozcount==0)
lcd.setCursor(0,0);
lcd.print("Uzbuna! ");
if(digitalRead(provjera) == HIGH) temp=1;
else temp=0;
if(toggle==0) analogWrite(buzzer, 180);
else analogWrite(buzzer, 0);
else if(temp==1)
analogWrite(buzzer,0);
lcd.setCursor(0,0);
if(dozcount>0)lcd.print(dozcount);lcd.print(" ");
else lcd.print("Tezina:");
Tehničko velučilište u Zagrebu,
Elektrotehnika,
Automatizacija i procesno računarstvo
Projektiranje i primjena ugradbenih računalnih sustava
Seminarski rad
Andrej Jozić Matija Lastovčić 6.
08.06.2015.
Dijagram toka:
Tehničko velučilište u Zagrebu,
Elektrotehnika,
Automatizacija i procesno računarstvo
Projektiranje i primjena ugradbenih računalnih sustava
Seminarski rad
Andrej Jozić Matija Lastovčić 7.
08.06.2015.
Opis rada:
Program radi na način da se promjenom težine (apsolutna vrijednost razlike stare i nove vrijednosti)
aktivira pin 5 na kojem se nalazi piezo zvučnik.
Ukoliko se želi pomicati roba sa mjesta na kojem se nalazi senzor tada smo dodali mogućnost dozvole
tj. s timer-om je omogućeno da se odbrojava 10 sekundi potrebnih za pomicanje robe.
Kroz cijeli rad koda na lcd display-u se očitava vrijednost koja se nalazi na senzoru koju on iščitava te
također ispisuje se uzbuna , uz alarm, ukoliko dođe do promjene.