PROGRAM BASCOM AVR. ' inisialisasi '

Similar documents
Firmware Master (Betreuer)

AW51V2, 8051 Development Board

'Pressure_32 () calculates the air pressure with 32bit, it results in a resolution of 0.01hPa. 'This is quite sufficient for a weather station.

Application note, Nordic nrf24l01 with Bascom-Avr

I2C BUS SERIAL EEPROM

DT-SENSE. UltraSonic and InfraRed Ranger (USIRR)

ICN12. I2C to UART Bridge, ADC,DAC and I/O

Project : Version : Date : 11/04/2016 Author : Freeware, for evaluation and non-commercial use only Company : Comments:

Visual Basic 6 Lecture 7. The List Box:

BASCOM LT. Language Reference V 1.26

Brief Preface. INTRODUCTION

Easy-TCP/IP 1.6. I²C / TWI interface. Making Things Easy MCS ELECTRONICS. Version. Easy-TCP/IP I²C / TWI interface

RTC Interface 89C51 DS M. Krishna Kumar MAM/M7/LU17/V1/ Vcc VCC 5 SDA P1.0 6 SCL P KHz 3 BAT 3.

LAMPIRAN A. Universitas Sumatera Utara

ELCT 912: Advanced Embedded Systems

Lampiran I. Rangkaian Lengkap Alat. Universitas Sumatera Utara

Page 1 of 7. Samtron/Samsung 20S204DA2

NIDEK AUTO REFRACTOMETER ARK-710A INTERFACE MANUAL

Tutorial, Source code, Request Program Visual Basic

LAMPIRAN A PROGRAM FLOWSTONE

SOFTWARE UART MANAGEMENT

Dual Interface LCD Display Controller

Robosoft Systems in association with JNCE presents. Swarm Robotics

McMaster University Embedded Systems. Computer Engineering 4DS4 Lecture 6 Serial Peripherals Amin Vali Feb. 2016

How2Use DT-51 AT89C51XXX BMS. By: IE Team. Picture1 The layout of DT-51 AT89C51XXX BMS

LAMPIRAN A FOTO Radio Control Helikopter dan Pengendalinya

BASCOM-8051 user manual

I/O232-A User s Guide

Supplement for module D041 incl. ATMega8 Prozessor

Dallas Semiconductor DS1307 Real Time Clock. The DS 1307 is a real-time clock with 56 bytes of NV (nonvolatile)

E-Module: GLCD+RTC Combo Datasheet

C:\MasterPageWeb\HAPR\docu\HAPR_VB6_version15sept06.rtf 19/10/08. HARP_VB projet en VB6

LISTING PROGRAM. Form Splash

LAMPIRAN A : LISTING PROGRAM

Serial:UART/I2C/SPI Text LCD Display Control Module. LCDSP_TG V1.60 user manual

BASCOM51. Quick Start Guide

Supplement for module D061 incl. ATMega128 Prozessor

19.1. Unit 19. Serial Communications

µpad: Microprocessor for Academic Development

LPTCOM. Bruce Misner Lakehead University h d3 RD2 pin 21. RD3 pin h d4. RD4 pin 27 RD5 pin h d5. RD6 pin 29 RD7 pin H d6

PROGRAM 1: SIMPLE CALCULATOR

GM 500A Mifare Read/Write Module V1.0 GM 500A Mifare 13.56MHz Read/Write Protocols Interface (I2C/UART) User s Manual

PIC Simulator IDE BASIC Compiler Reference Manual

LABORATORY MANUAL Interfacing LCD 16x2, Keypad 4x4 and 7Segment Display to PIC18F4580

BV4531U. I2C or Serial 6 Way Relay

Timer0..Timer3. Interrupt Description Input Conditions Enable Flag

General. Copyright 2013 EXSEN Company. All Rights Reserved. Rev /5/2013 Page 1 of 6

NHD C12864MZ NSW BTW. COG (Chip On Glass) Liquid Crystal Display Module

M32 Development Board

L A M P I R A N. Universitas Sumatera Utara

QSFP Breakout. Data Sheet. Datasheet QSFP Breakout. 1 Overview. Table of Contents. 2 Features

2 in 1. EasyAVR4 User s Manual AVR. MikroElektronika. Software and Hardware solutions for Embedded World

Ready-Set-Go (RSG) Controller: Getting Starter

LCD Micro Serial/I 2 C Interface Module for R.G.B backlights. Technical Data

CONNECTION TO A HOST COMPUTER

Communication interfaces

Interfacing Z8 Encore! XP MCUs with an I 2 C-Based Character LCD

XS S ERIES TM PMB US TM O PTION C ARD

Parallel Data Transfer. Suppose you need to transfer data from one HCS12 to another. How can you do this?

Serial Communications

SC168MBM 16x8 Characters MODBUS MASTER LCD

The ActiveX Interface of Facon Communication Server

Win-I2CNTDLL. I²C and SMBus Control DLL User s Manual. Version 4

LCD Module with I2C / Serial Interface and Keypad Control «LCD I2C/Serial» User s Guide. Copyright 2008 IMS

// Voltage Reference: AREF pin #define ADC_VREF_TYPE ((0<<REFS1) (0<<REFS0) (0<<ADLAR))

LCD2041 Technical Manual. Revision: 2.1

CONTENTS. dspicpro4 KEY FEATURES 4 CONNECTING THE SYSTEM 5 INTRODUCTION 6

HuddleCamHD RS-232 Joystick Controller Model Number: HC-JOY

LAMPIRAN A. I. Gambar alat percobaan I.1. Power supply. 1. Rangkaian sekunder 2. Dioda. 3. Heatsink 4. Power supply (keseluruhan)

DIGITAL HUMIDITY SENSOR HYT-131

AVR 40 Pin Rapid Robot controller board

Quick Reference Guide

LAMPIRAN. Universitas Sumatera Utara

LAMPIRAN. Universitas Sumatera Utara

Rev Carbon Dioxide (CO2) Gas Sensor. TG100 User Manual

CONTENTS BIGAVR2 KEY FEATURES 4 CONNECTING THE SYSTEM 5 INTRODUCTION 6

BV4626 General Purpose I/O. Product specification. Mar 2010 V0.a. ByVac Page 1 of 13

ECE 511 Project Group 11: MP3 Boombox 12/03/2013. Carlos R Araujo Divya Chinthalapuri Leegia S Jacob Brian D Jarvis Shawn Wilkinson

Logosol Joystick Node LS-731

2 in 1. BigAVR User s Manual AVR. MikroElektronika. Software and Hardware solutions for Embedded World

SC2004MBS 20x4 Characters MODBUS RTU Slave LCD

Serial Communications

i³ Display, Control, Connect

ambient XC RS232 Control Command Specification

Embedded Systems and Software. LCD Displays

Enviro Series. Printer Addendum. Printers available from Fairbanks Scales A Tape Printer. Enviro DB25...

Citect for Windows Driver Specification Extract

NITGEN FIM5360. Datasheet FIM5360. Version Supported Firmware Version: 1.11 or above

User's Guide. Programmable DC Power Supply 200 Watt (40 Volts / 5 Amps) Model Introduction

ALCD (Advance LCD) SERIES

NHD-0216K3Z-NS(RGB)-FBW-V3

MCP2120/MCP2150 DEVELOPER S KIT USER S GUIDE

Explorer V1.20. Features

Real Time Clock with Temperature Sensor and RS485/Modbus Comunications

Module 2: Introduction to AVR ATmega 32 Architecture

CN310 Microprocessor Systems Design

J-CC Data Cable. Operating Instructions

Serial Communications

Data Acquisition over Ethernet using Serial Device Server - NPort 5210 PRL-TN

Rev Carbon Dioxide (CO2) Gas Sensor. TG100 User Manual

Transcription:

PROGRAM BASCOM AVR '--------------------------------------- inisialisasi '----------------------- $prog &HFF, &HC4, &HD9, &H00 ' generated. Take care that the chip supports all fuse bytes. $regfile = "m8def.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 '$baud = 9600 $baud = 57600 $lib "ds1307clock.lib" '$serialinput2lcd '------------------------------------------------------------------------------- Dim Weekday As Byte Dim Tm As Word Dim Sen_w1 As Word Dim Sen_w2 As Word Dim Sw1 As Word, Vir_sw1 As Word Dim Sw2 As Word, Vir_sw2 As Word Dim S As String * 30 Dim Z As String * 30 Dim A As Byte Dim V1 As Word, V2 As Word, V3 As Word Dim V4 As Word, V5 As Word, V6 As Word '------------------------------------------------ konfigurasi ----------------- Config Lcd = 20 * 4

Config Lcdpin = Pin, Db4 = Portb.2, Db5 = Portb.3, Db6 = Portb.4, Db7 = Portb.5, E = Portb.1, Rs = Portb.0 Config Adc = Single, Prescaler = Auto Config Portd = Output Config Sda = Portc.4 Config Scl = Portc.5 Const Ds1307w = &HD0 Const Ds1307r = &HD1 Config Clock = User Config Adc = Single, Prescaler = Auto Pompa1 Alias Portd.2 Pompa2 Alias Portd.3 'Config Portd.4 = Input Enable Interrupts Cursor Off Cls 'Print "DS1307" Waitms 10 Start Adc '-------------------------------------- seting waktu --------------------------- 'Time$ = "14:27:00" 'Gosub Getdatetime '-------------------------------------- mulai ---------------------------------- Mulai: Do '--------------------------------------------------- gerbang input sensor.----- Sen_w1 = Getadc(0) Sen_w2 = Getadc(1)

Sw1 = Getadc(2) Sw2 = Getadc(3) '------------------------------------------------- input data ---------------- '------------------------------------------------- pengirinan data ke APC220 ---- Incr Tm If Tm >= 1 Then : Tm = 0 Print "#$" ; Sen_w1 ; "?$" ; Sen_w2 ; "?$" ; Sw1 ; "?$" ; V1 ; "?$" ; V2 ; "?$" ; V3 ; "?$" ; V4 ; "?$" ; V5 ; "?&@ +[ENTER]" '---------------------------------------------------- tampilan lcd ------------- 'Print "W:" ; Time$ Locate 2, 1 : Lcd "TX:" ; Tm ; " " Locate 1, 1 : Lcd "S1:" ; Sen_w1 ; " " Locate 1, 10 : Lcd "S2:" ; Sen_w2 ; " " Locate 2, 8 : Lcd "W" ; Time$ ; " " 'Locate 3, 1 : Lcd "RX" ; A ; " " Waitms 1 '========================================================== ===================== '------------------------------- waktu pemberian pakan '----------------------- ''========================================================== ==================== '--------------------------------------------- Pagi ---------------------------- If _sec >= 00 And _sec <= 2 And _min = 12 And _hour = 6 Then : Vir_sw1 = 1 : Goto Pakan : '-------------------------------------------- siang ---------------------------- If _sec = 00 And _sec <= 2 And _min = 12 And _hour = 12 Then : Vir_sw1 = 1 : Goto Pakan :

'--------------------------------------------- sore ---------------------------- If _sec = 00 And _sec <= 2 And _min = 45 And _hour = 16 Then : Vir_sw1 = 1 : Goto Pakan : '------------------------------------------------------------------------------- If Sw1 >= 200 And Vir_sw1 = 0 Then : Portd.6 = 1 : Goto Pakan : '========================================================== ===================== '--------------------------- control dari wereless '--------------------------- '========================================================== ===================== '-------------------------------------------------- Pompa 1 ON ----------------- If Z = "1" Then Locate 3, 1 : Lcd "Pomp 1:ON " Pompa1 = 1 '-------------------------------------------------- Pompa 1 OFF ---------------- If Z = "2" Then Locate 3, 1 : Lcd "Pomp 1:OFF " Pompa1 = 0 ' '-------------------------------------------------- Pompa 2 ON ----------------- If Z = "3" Then Locate 3, 10 : Lcd "Pomp 2:ON " Pompa2 = 1 '-------------------------------------------------- Pompa 2 OFF ---------------- If Z = "4" Then

Locate 3, 10 : Lcd "Pomp 2:OFF " Pompa2 = 0 '--------------------------------------------------- Pemberian Pakan ----------- If Z >= "9" Then : Portd.6 = 1 : Wait 4 : Goto Pakan : ' '========================================================== ===================== '------------------------------------------------- aktif pompa ----------------- If Pind.4 = 1 Then Pompa1 = 1 '-------------------------------------------------- If Pind.4 = 0 Then Pompa1 = 0 '------------------------------------------------------------------------------- Loop 'Until A = 27 '------------------------------------------------------------------------------- 'Loop End '------------------------------------------------------------------------------- Return

'=========================================== Pengambilan data RTC DS1307 ====== Getdatetime: I2cstart I2cwbyte Ds1307w I2cwbyte 0 I2cstart I2cwbyte Ds1307r I2crbyte _sec, Ack I2crbyte _min, Ack I2crbyte _hour, Ack I2crbyte Weekday, Ack I2crbyte _day, Ack I2crbyte _month, Ack I2crbyte _year, Nack I2cstop _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour) _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year) Return '------------------------------------------------------------------------------ Setdate: _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year) I2cstart I2cwbyte Ds1307w I2cwbyte 4 I2cwbyte _day I2cwbyte _month I2cwbyte _year I2cstop Return

'------------------------------------------------------------------------------ Settime: _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour) I2cstart I2cwbyte Ds1307w I2cwbyte 0 I2cwbyte _sec I2cwbyte _min I2cwbyte _hour I2cstop Return Pakan: Cls '--------------------------------------------- Locate 1, 1 : Lcd " Memberi Pakan " Portd.6 = 1 Wait 1 Portd.6 = 0 Wait 4 '--------------------------------------------- Locate 2, 1 : Lcd " Memberi Pakan " Portd.6 = 1 Wait 1 Portd.6 = 0 Wait 4 '---------------------------------------------

Locate 3, 1 : Lcd " Memberi Pakan " Portd.6 = 1 Wait 3 Portd.6 = 0 Locate 4, 1 : Lcd " Memberi Pakan " Wait 4 Vir_sw1 = 0 Cls Return

Program Visual Basic Private Sub Command1_Click() Unload Me Private Sub Command2_Click() Timer4.Enabled = False mnstart.caption = "S&" + "tart" Text2.BackColor = &H0& Text2.ForeColor = &H0& 'pompa1_v = 0 Private Sub Command3_Click() Timer4.Interval = GetSetting(App.Title, "SettingValue", "Waktu", 1) Timer4.Enabled = True mnstart.caption = "S&" + "top" Text2.BackColor = &HFF& Text2.ForeColor = &HFF& 'pompa1_v = 1 Private Sub Command4_Click() Text1.BackColor = &HFF& Text1.ForeColor = &HFF& Serial.Output = "3" Private Sub Command5_Click() Text1.BackColor = &H0& Text1.ForeColor = &H0&

Serial.Output = "4" Private Sub Command6_Click() Text3.BackColor = &HFF& Text3.ForeColor = &HFF& Serial.Output = "1" Private Sub Command7_Click() Text3.BackColor = &H0& Text3.ForeColor = &H0& Serial.Output = "2" Private Sub Command8_Click() Serial.Output = "5" Private Sub Form_Load() 'membuat garis bantu picgrafik.refresh picgrafik.cls picgrafik.drawstyle = 0 picgrafik.drawwidth = 1 SerialCon LoadDataAwal SetVariabel '---Log----

With mslog.rows = 1.ColWidth(0) = 600.TextMatrix(0, 0) = "Time".ColWidth(1) = Lebar.TextMatrix(0, 1) = "ADC1".ColWidth(2) = Lebar.TextMatrix(0, 2) = "ADC2".ColWidth(3) = Lebar.TextMatrix(0, 3) = "ADC3".ColWidth(4) = Lebar.TextMatrix(0, 4) = "ADC4".ColWidth(5) = Lebar.TextMatrix(0, 5) = "ADC5".ColWidth(6) = Lebar.TextMatrix(0, 6) = "ADC6".ColWidth(7) = Lebar.TextMatrix(0, 7) = "ADC7".ColWidth(8) = Lebar.TextMatrix(0, 8) = "ADC8" End With Sub SetVariabel() Lebar = 900 StepBatas = 1000 TitikNolY = 5000 TitikNolX = 500 X1a = TitikNolX X1b = X1a

Y1a = TitikNolY Y1b = Y1a X2a = X1a X2b = X1b Y2a = Y1a Y2b = Y1b X3a = X1a X3b = X1b Y3a = Y1a Y3b = Y1b X4a = X1a X4b = X1b Y4a = Y1a Y4b = Y1b X5a = X1a X5b = X1b Y5a = Y1a Y5b = Y1b X6a = X1a X6b = X1b Y6a = Y1a Y6b = Y1b X7a = X1a

X7b = X1b Y7a = Y1a Y7b = Y1b X8a = X1a X8b = X1b Y8a = Y1a Y8b = Y1b StepGrap = 5 Sub LoadDataAwal() SetAtas1 = GetSetting(App.Title, "SettingValue", "Atas1", 0) SetBawah1 = GetSetting(App.Title, "SettingValue", "Bawah1", 0) If SetAtas1 < SetBawah1 Then SetAtas1 = SetBawah1 + 1 lblsetatas1.caption = SetAtas1 lblsetbawah1 = SetBawah1 SetAtas2 = GetSetting(App.Title, "SettingValue", "Atas2", 0) SetBawah2 = GetSetting(App.Title, "SettingValue", "Bawah2", 0) If SetAtas2 < SetBawah2 Then SetAtas2 = SetBawah2 + 1 lblsetatas2.caption = SetAtas2 lblsetbawah2 = SetBawah2 SetAtas3 = GetSetting(App.Title, "SettingValue", "Atas3", 0) SetBawah3 = GetSetting(App.Title, "SettingValue", "Bawah3", 0)

If SetAtas3 < SetBawah3 Then SetAtas3 = SetBawah3 + 1 lblsetatas3.caption = SetAtas3 lblsetbawah3 = SetBawah3 SetAtas4 = GetSetting(App.Title, "SettingValue", "Atas4", 0) SetBawah4 = GetSetting(App.Title, "SettingValue", "Bawah4", 0) If SetAtas4 < SetBawah4 Then SetAtas4 = SetBawah4 + 1 lblsetatas4.caption = SetAtas4 lblsetbawah4 = SetBawah4 SetAtas5 = GetSetting(App.Title, "SettingValue", "Atas5", 0) SetBawah5 = GetSetting(App.Title, "SettingValue", "Bawah5", 0) If SetAtas5 < SetBawah5 Then SetAtas5 = SetBawah5 + 1 lblsetatas5.caption = SetAtas5 lblsetbawah5 = SetBawah5 SetAtas6 = GetSetting(App.Title, "SettingValue", "Atas6", 0) SetBawah6 = GetSetting(App.Title, "SettingValue", "Bawah6", 0) If SetAtas6 < SetBawah6 Then SetAtas6 = SetBawah6 + 1 lblsetatas6.caption = SetAtas6 lblsetbawah6 = SetBawah6

SetAtas7 = GetSetting(App.Title, "SettingValue", "Atas7", 0) SetBawah7 = GetSetting(App.Title, "SettingValue", "Bawah7", 0) If SetAtas7 < SetBawah7 Then SetAtas7 = SetBawah7 + 1 lblsetatas7.caption = SetAtas7 lblsetbawah7 = SetBawah7 SetAtas8 = GetSetting(App.Title, "SettingValue", "Atas8", 0) SetBawah8 = GetSetting(App.Title, "SettingValue", "Bawah8", 0) If SetAtas8 < SetBawah8 Then SetAtas8 = SetBawah8 + 1 lblsetatas8.caption = SetAtas8 lblsetbawah8 = SetBawah8 Sub Awal() Dim i As Integer With picgrafik.fontname = "verdana".forecolor = RGB(80, 80, 80).FontSize = 8 End With picgrafik.drawwidth = 2 'sumbu x picgrafik.line (500, 5000)-(picGrafik.Width, 5000), RGB(100, 100, 100) picgrafik.drawstyle = 2 picgrafik.drawwidth = 1

For i = 1 To 9 picgrafik.line (500, i * 500)-(picGrafik.Width, i * 500), RGB(100, 100, 100) picgrafik.currenty = i * 500 picgrafik.currentx = 1 picgrafik.print 1000 - (i * 100) Next i picgrafik.currenty = 5000 picgrafik.currentx = 300 picgrafik.print 0 picgrafik.currenty = 10 picgrafik.currentx = 1 picgrafik.print 1000 picgrafik.drawstyle = 0 picgrafik.drawwidth = 2 'sumbu y picgrafik.line (500, 0)-(500, 5000), RGB(100, 100, 100) picgrafik.drawstyle = 1 picgrafik.drawwidth = 1 For i = 1 To 14 picgrafik.line (500 + i * 1000, 0)-(500 + i * 1000, 5000), RGB(100, 100, 100) Next i picgrafik.drawstyle = 2 picgrafik.drawwidth = 1 For i = 1 To 14 picgrafik.line (i * 1000, 0)-(i * 1000, 5000), RGB(100, 100, 100) Next i

'Tulisan sumbu Y picgrafik.drawstyle = 0 picgrafik.drawwidth = 4 picgrafik.line (1600, 5200)-(2000, 5200), RGB(125, 0, 0) picgrafik.line (3600, 5200)-(4000, 5200), RGB(125, 125, 0) picgrafik.line (5600, 5200)-(6000, 5200), RGB(125, 125, 125) picgrafik.line (7600, 5200)-(8000, 5200), RGB(255, 0, 0) picgrafik.line (9600, 5200)-(10000, 5200), RGB(255, 125, 0) picgrafik.line (11600, 5200)-(12000, 5200), RGB(255, 125, 125) picgrafik.line (13600, 5200)-(14000, 5200), RGB(255, 255, 0) picgrafik.line (15600, 5200)-(16000, 5200), RGB(255, 255, 255) picgrafik.currentx = 2100 picgrafik.currenty = 5100 picgrafik.print "ADC1" picgrafik.currentx = 4100 picgrafik.currenty = 5100 picgrafik.print "ADC2" picgrafik.currentx = 6100 picgrafik.currenty = 5100 picgrafik.print "ADC3" picgrafik.currentx = 8100 picgrafik.currenty = 5100 picgrafik.print "ADC4" picgrafik.currentx = 10100 picgrafik.currenty = 5100 picgrafik.print "ADC5" picgrafik.currentx = 12100 picgrafik.currenty = 5100 picgrafik.print "ADC6"

picgrafik.currentx = 13850 picgrafik.currenty = 3600 picgrafik.print "ADC7" picgrafik.currentx = 13850 picgrafik.currenty = 4100 picgrafik.print "ADC8" Private Sub Form_Unload(Cancel As Integer) If Serial.PortOpen = True Then Serial.PortOpen = False Private Sub mnexit_click() Unload Me Private Sub mnport_click() Dim kom As Integer kom = InputBox("Masukkan No COM yang digunakan (1,2,3 atau 4)", "koneksi") SaveSetting App.Title, "SettingValue", "Port", kom Private Sub mnsampling_click() Dim waktu As Integer waktu = InputBox("Masukkan waktu sampling yang digunakan (dalam ms)", "Waktu Sampling") SaveSetting App.Title, "SettingValue", "Waktu", waktu

Private Sub mnstart_click() If Timer4.Enabled = False Then Timer4.Interval = GetSetting(App.Title, "SettingValue", "Waktu", 1) Timer4.Enabled = True mnstart.caption = "S&" + "top" ElseIf Timer4.Enabled = True Then Timer4.Enabled = False mnstart.caption = "S&" + "tart" Private Sub Timer1_Timer() Awal Timer1.Enabled = False Private Sub Timer3_Timer() Serial.Output = "r" + Chr(10) Private Sub Timer4_Timer() Dim PaketPecah As String Dim Kres As Integer, At As Integer Dim Dollar As Integer, Tanya As Integer 'Serial.Output = "r" + Chr(10) DataSerial = Serial.Input 'Text1 = DataSerial If DataSerial <> "" Then PaketData = ""

PaketData = DataSerial Kres = InStr(PaketData, "#") At = InStr(PaketData, "@") If (Kres > 0) And (At > 0) Then If Left(PaketData, 1) = "#" Then 'ADC 1 PaketPecah = Mid$(PaketData, Kres + 1, At - 2) Dollar = InStr(PaketPecah, "$") Tanya = InStr(PaketPecah, "?") ADC1 = Mid$(PaketPecah, Dollar + 1, Tanya - 2) If ADC1 > 5000 Then ADC1 = ADC1 / 10 If ADC1 > 5000 Then ADC1 = 5000 lbladc1 = ADC1 PaketPecah = Mid$(PaketPecah, Tanya + 1, Len(PaketPecah) - Tanya) 'ADC 2 Dollar = InStr(PaketPecah, "$") Tanya = InStr(PaketPecah, "?") ADC2 = Mid$(PaketPecah, Dollar + 1, Tanya - 2) If ADC2 > 5000 Then ADC2 = ADC2 / 10 If ADC2 > 5000 Then ADC2 = 5000

lbladc2 = ADC2 PaketPecah = Mid$(PaketPecah, Tanya + 1, Len(PaketPecah) - Tanya) 'ADC 3 Dollar = InStr(PaketPecah, "$") Tanya = InStr(PaketPecah, "?") ADC3 = Mid$(PaketPecah, Dollar + 1, Tanya - 2) If ADC3 > 5000 Then ADC3 = ADC3 / 10 If ADC3 > 5000 Then ADC3 = 5000 lbladc3 = ADC3 PaketPecah = Mid$(PaketPecah, Tanya + 1, Len(PaketPecah) - Tanya) 'ADC 4 Dollar = InStr(PaketPecah, "$") Tanya = InStr(PaketPecah, "?") ADC4 = Mid$(PaketPecah, Dollar + 1, Tanya - 2) If ADC4 > 5000 Then ADC4 = ADC4 / 10 If ADC4 > 5000 Then ADC4 = 5000

lbladc4 = ADC4 PaketPecah = Mid$(PaketPecah, Tanya + 1, Len(PaketPecah) - Tanya) 'ADC 5 Dollar = InStr(PaketPecah, "$") Tanya = InStr(PaketPecah, "?") ADC5 = Mid$(PaketPecah, Dollar + 1, Tanya - 2) If ADC5 > 5000 Then ADC5 = ADC5 / 10 If ADC5 > 5000 Then ADC5 = 5000 lbladc5 = ADC5 PaketPecah = Mid$(PaketPecah, Tanya + 1, Len(PaketPecah) - Tanya) 'ADC 6 Dollar = InStr(PaketPecah, "$") Tanya = InStr(PaketPecah, "?") ADC6 = Mid$(PaketPecah, Dollar + 1, Tanya - 2) If ADC6 > 5000 Then ADC6 = ADC6 / 10 If ADC6 > 5000 Then ADC6 = 5000 lbladc6 = ADC6 PaketPecah = Mid$(PaketPecah, Tanya + 1, Len(PaketPecah) - Tanya)

'ADC 7 Dollar = InStr(PaketPecah, "$") Tanya = InStr(PaketPecah, "?") ADC7 = Mid$(PaketPecah, Dollar + 1, Tanya - 2) If ADC7 > 5000 Then ADC7 = ADC7 / 10 If ADC7 > 5000 Then ADC7 = 5000 lbladc7 = ADC7 PaketPecah = Mid$(PaketPecah, Tanya + 1, Len(PaketPecah) - Tanya) 'ADC 8 Dollar = InStr(PaketPecah, "$") Tanya = InStr(PaketPecah, "?") ADC8 = Mid$(PaketPecah, Dollar + 1, Tanya - 2) If ADC8 > 5000 Then ADC8 = ADC8 / 10 If ADC8 > 5000 Then ADC8 = 5000 lbladc8 = ADC8 PaketPecah = Mid$(PaketPecah, Tanya + 1, Len(PaketPecah) - Tanya) Grafik CekBatas

Private Sub UDAtas1_DownClick() If SetAtas1 > 0 Then SetAtas1 = SetAtas1 - StepBatas lblsetatas1.caption = SetAtas1 SaveSetting App.Title, "SettingValue", "Atas1", SetAtas1 Private Sub UDAtas1_UpClick() If SetAtas1 < UDAtas1.Max Then SetAtas1 = SetAtas1 + StepBatas lblsetatas1.caption = SetAtas1 SaveSetting App.Title, "SettingValue", "Atas1", SetAtas1 Private Sub UDAtas2_DownClick() If SetAtas2 > 0 Then SetAtas2 = SetAtas2 - StepBatas lblsetatas2.caption = SetAtas2 SaveSetting App.Title, "SettingValue", "Atas2", SetAtas2 Private Sub UDAtas2_UpClick()

If SetAtas2 < UDAtas2.Max Then SetAtas2 = SetAtas2 + StepBatas lblsetatas2.caption = SetAtas2 SaveSetting App.Title, "SettingValue", "Atas2", SetAtas2 Private Sub UDAtas3_DownClick() If SetAtas3 > 0 Then SetAtas3 = SetAtas3 - StepBatas lblsetatas3.caption = SetAtas3 SaveSetting App.Title, "SettingValue", "Atas3", SetAtas3 Private Sub UDAtas3_UpClick() If SetAtas3 < UDAtas3.Max Then SetAtas3 = SetAtas3 + StepBatas lblsetatas3.caption = SetAtas3 SaveSetting App.Title, "SettingValue", "Atas3", SetAtas3 Private Sub UDAtas4_DownClick() If SetAtas4 > 0 Then SetAtas4 = SetAtas4 - StepBatas lblsetatas4.caption = SetAtas4 SaveSetting App.Title, "SettingValue", "Atas4", SetAtas4

Private Sub UDAtas4_UpClick() If SetAtas4 < UDAtas4.Max Then SetAtas4 = SetAtas4 + StepBatas lblsetatas4.caption = SetAtas4 SaveSetting App.Title, "SettingValue", "Atas4", SetAtas4 Private Sub UDAtas5_DownClick() If SetAtas5 > 0 Then SetAtas5 = SetAtas5 - StepBatas lblsetatas5.caption = SetAtas5 SaveSetting App.Title, "SettingValue", "Atas5", SetAtas5 Private Sub UDAtas5_UpClick() If SetAtas5 < UDAtas5.Max Then SetAtas5 = SetAtas5 + StepBatas lblsetatas5.caption = SetAtas5 SaveSetting App.Title, "SettingValue", "Atas5", SetAtas5 Private Sub UDAtas6_DownClick() If SetAtas6 > 0 Then SetAtas6 = SetAtas6 - StepBatas

lblsetatas6.caption = SetAtas6 SaveSetting App.Title, "SettingValue", "Atas6", SetAtas6 Private Sub UDAtas6_UpClick() If SetAtas6 < UDAtas6.Max Then SetAtas6 = SetAtas6 + StepBatas lblsetatas6.caption = SetAtas6 SaveSetting App.Title, "SettingValue", "Atas6", SetAtas6 Private Sub UDAtas7_DownClick() If SetAtas7 > 0 Then SetAtas7 = SetAtas7 - StepBatas lblsetatas7.caption = SetAtas7 SaveSetting App.Title, "SettingValue", "Atas7", SetAtas7 Private Sub UDAtas7_UpClick() If SetAtas7 < UDAtas7.Max Then SetAtas7 = SetAtas7 + StepBatas lblsetatas7.caption = SetAtas7 SaveSetting App.Title, "SettingValue", "Atas7", SetAtas7

Private Sub UDAtas8_DownClick() If SetAtas8 > 0 Then SetAtas8 = SetAtas8 - StepBatas lblsetatas8.caption = SetAtas8 SaveSetting App.Title, "SettingValue", "Atas8", SetAtas8 Private Sub UDAtas8_UpClick() If SetAtas8 < UDAtas8.Max Then SetAtas8 = SetAtas8 + StepBatas lblsetatas8.caption = SetAtas8 SaveSetting App.Title, "SettingValue", "Atas8", SetAtas8 Private Sub UDBawah1_DownClick() If SetBawah1 > 0 Then SetBawah1 = SetBawah1 - StepBatas lblsetbawah1 = SetBawah1 SaveSetting App.Title, "SettingValue", "Bawah1", SetBawah1 Private Sub UDBawah1_UpClick() If SetBawah1 < UDBawah1.Max Then SetBawah1 = SetBawah1 + StepBatas lblsetbawah1 = SetBawah1

SaveSetting App.Title, "SettingValue", "Bawah1", SetBawah1 Private Sub UDBawah2_DownClick() If SetBawah2 > 0 Then SetBawah2 = SetBawah2 - StepBatas lblsetbawah2 = SetBawah2 SaveSetting App.Title, "SettingValue", "Bawah2", SetBawah2 Private Sub UDBawah2_UpClick() If SetBawah2 < UDBawah2.Max Then SetBawah2 = SetBawah2 + StepBatas lblsetbawah2 = SetBawah2 SaveSetting App.Title, "SettingValue", "Bawah2", SetBawah2 Private Sub UDBawah3_DownClick() If SetBawah3 > 0 Then SetBawah3 = SetBawah3 - StepBatas lblsetbawah3 = SetBawah3 SaveSetting App.Title, "SettingValue", "Bawah3", SetBawah3 Private Sub UDBawah3_UpClick() If SetBawah3 < UDBawah3.Max Then

SetBawah3 = SetBawah3 + StepBatas lblsetbawah3 = SetBawah3 SaveSetting App.Title, "SettingValue", "Bawah3", SetBawah3 Private Sub UDBawah4_DownClick() If SetBawah4 > 0 Then SetBawah4 = SetBawah4 - StepBatas lblsetbawah4 = SetBawah4 SaveSetting App.Title, "SettingValue", "Bawah4", SetBawah4 Private Sub UDBawah4_UpClick() If SetBawah4 < UDBawah4.Max Then SetBawah4 = SetBawah4 + StepBatas lblsetbawah4 = SetBawah4 SaveSetting App.Title, "SettingValue", "Bawah4", SetBawah4 Private Sub UDBawah5_DownClick() If SetBawah5 > 0 Then SetBawah5 = SetBawah5 - StepBatas lblsetbawah5 = SetBawah5 SaveSetting App.Title, "SettingValue", "Bawah5", SetBawah5

Private Sub UDBawah5_UpClick() If SetBawah5 < UDBawah5.Max Then SetBawah5 = SetBawah5 + StepBatas lblsetbawah5 = SetBawah5 SaveSetting App.Title, "SettingValue", "Bawah5", SetBawah5 Private Sub UDBawah6_DownClick() If SetBawah6 > 0 Then SetBawah6 = SetBawah6 - StepBatas lblsetbawah6 = SetBawah6 SaveSetting App.Title, "SettingValue", "Bawah6", SetBawah6 Private Sub UDBawah6_UpClick() If SetBawah6 < UDBawah6.Max Then SetBawah6 = SetBawah6 + StepBatas lblsetbawah6 = SetBawah6 SaveSetting App.Title, "SettingValue", "Bawah6", SetBawah6 Private Sub UDBawah7_DownClick() If SetBawah7 > 0 Then SetBawah7 = SetBawah7 - StepBatas lblsetbawah7 = SetBawah7

SaveSetting App.Title, "SettingValue", "Bawah7", SetBawah7 Private Sub UDBawah7_UpClick() If SetBawah7 < UDBawah7.Max Then SetBawah7 = SetBawah7 + StepBatas lblsetbawah7 = SetBawah7 SaveSetting App.Title, "SettingValue", "Bawah7", SetBawah7 Private Sub UDBawah8_DownClick() If SetBawah8 > 0 Then SetBawah8 = SetBawah8 - StepBatas lblsetbawah8 = SetBawah8 SaveSetting App.Title, "SettingValue", "Bawah8", SetBawah8 Private Sub UDBawah8_UpClick() If SetBawah8 < UDBawah8.Max Then SetBawah8 = SetBawah8 + StepBatas lblsetbawah8 = SetBawah8 SaveSetting App.Title, "SettingValue", "Bawah8", SetBawah8 Sub Grafik() Dim Jumlah As Integer, Nilai1 As Integer

Jumlah = mslog.rows ADC1 = ADC1 * 5 ADC2 = ADC2 * 5 ADC3 = ADC3 * 5 ADC4 = ADC4 * 5 ADC5 = ADC5 * 5 ADC6 = ADC6 * 5 ADC7 = ADC7 * 5 ADC8 = ADC8 * 5 Y1b = TitikNolY - ADC1 Y2b = TitikNolY - ADC2 Y3b = TitikNolY - ADC3 Y4b = TitikNolY - ADC4 Y5b = TitikNolY - ADC5 Y6b = TitikNolY - ADC6 Y7b = TitikNolY - ADC7 Y8b = TitikNolY - ADC8 Frame7 = X1a If X1a < 14000 Then X1b = X1b + StepGrap X2b = X2b + StepGrap X3b = X3b + StepGrap X4b = X4b + StepGrap X5b = X5b + StepGrap X6b = X6b + StepGrap X7b = X7b + StepGrap X8b = X8b + StepGrap

ElseIf X1a >= 14000 Then X1a = TitikNolX X2a = TitikNolX X3a = TitikNolX X4a = TitikNolX X5a = TitikNolX X6a = TitikNolX X7a = TitikNolX X8a = TitikNolX X1b = TitikNolX X2b = TitikNolX X3b = TitikNolX X4b = TitikNolX X5b = TitikNolX X6b = TitikNolX X7b = TitikNolX X8b = TitikNolX picgrafik.cls Awal picgrafik.line (X1a, Y1a)-(X1b, Y1b), RGB(125, 0, 0) picgrafik.line (X2a, Y2a)-(X2b, Y2b), RGB(125, 125, 0) picgrafik.line (X3a, Y3a)-(X3b, Y3b), RGB(125, 125, 125) picgrafik.line (X4a, Y4a)-(X4b, Y4b), RGB(255, 0, 0) picgrafik.line (X5a, Y5a)-(X5b, Y5b), RGB(255, 125, 0) picgrafik.line (X6a, Y6a)-(X6b, Y6b), RGB(255, 125, 125) picgrafik.line (X7a, Y7a)-(X7b, Y7b), RGB(255, 255, 0) picgrafik.line (X8a, Y8a)-(X8b, Y8b), RGB(255, 255, 255) With mslog

.Rows = Jumlah + 1.TextMatrix(Jumlah, 0) = Val(Jumlah).TextMatrix(Jumlah, 1) = ADC1.TextMatrix(Jumlah, 0) = Val(Jumlah).TextMatrix(Jumlah, 2) = ADC2.TextMatrix(Jumlah, 0) = Val(Jumlah).TextMatrix(Jumlah, 3) = ADC3.TextMatrix(Jumlah, 0) = Val(Jumlah).TextMatrix(Jumlah, 4) = ADC4.TextMatrix(Jumlah, 0) = Val(Jumlah).TextMatrix(Jumlah, 5) = ADC5.TextMatrix(Jumlah, 0) = Val(Jumlah).TextMatrix(Jumlah, 6) = ADC6.TextMatrix(Jumlah, 0) = Val(Jumlah).TextMatrix(Jumlah, 7) = ADC7.TextMatrix(Jumlah, 0) = Val(Jumlah).TextMatrix(Jumlah, 8) = ADC8 End With Label15.Caption = "T(" & Jumlah & ")- DATA1:" & ADC1 & "- DATA2:" & ADC2 & "- DATA3:" & ADC3 & "- DATA4:" & ADC4 & "- DATA5:" & ADC5 & "- ADC6:" & ADC6 ' & "- ADC7:" & ADC7 & "- ADC8:" & ADC8 X1a = X1b Y1a = Y1b X2a = X2b Y2a = Y2b X3a = X3b Y3a = Y3b

X4a = X4b Y4a = Y4b X5a = X5b Y5a = Y5b X6a = X6b Y6a = Y6b X7a = X7b Y7a = Y7b X8a = X8b Y8a = Y8b Sub CekBatas() If Val(ADC1) >= SetAtas1 Then Shape1.FillColor = &HFF& ElseIf Val(ADC1) < SetAtas1 Then Shape1.FillColor = &HC000& If Val(ADC2) >= SetAtas2 Then Shape2.FillColor = &HFF& ElseIf Val(ADC2) < SetAtas2 Then Shape2.FillColor = &HC000&

If Val(ADC3) >= SetAtas3 Then Shape3.FillColor = &HFF& ElseIf Val(ADC3) < SetAtas3 Then Shape3.FillColor = &HC000& If Val(ADC4) >= SetAtas4 Then Shape4.FillColor = &HFF& ElseIf Val(ADC4) < SetAtas4 Then Shape4.FillColor = &HC000& If Val(ADC5) >= SetAtas5 Then Shape5.FillColor = &HFF& ElseIf Val(ADC5) < SetAtas5 Then Shape5.FillColor = &HC000& If Val(ADC6) >= SetAtas6 Then Shape6.FillColor = &HFF& ElseIf Val(ADC6) < SetAtas6 Then Shape6.FillColor = &HC000& If Val(ADC7) >= SetAtas7 Then Shape7.FillColor = &HFF& ElseIf Val(ADC7) < SetAtas7 Then Shape7.FillColor = &HC000&

If Val(ADC8) >= SetAtas8 Then Shape8.FillColor = &HFF& ElseIf Val(ADC8) < SetAtas8 Then Shape8.FillColor = &HC000&

Program Serial Visual Basic Dim DataSerial As String, PaketData As String Public ADC1 As String, ADC2 As String, ADC3 As String, ADC4 As String Public ADC5 As String, ADC6 As String, ADC7 As String, ADC8 As String Public SetAtas1 As Integer, SetAtas2 As Integer, SetAtas3 As Integer, SetAtas4 As Integer Public SetAtas5 As Integer, SetAtas6 As Integer, SetAtas7 As Integer, SetAtas8 As Integer Public SetBawah1 As Integer, SetBawah2 As Integer, SetBawah3 As Integer, SetBawah4 As Integer Public SetBawah5 As Integer, SetBawah6 As Integer, SetBawah7 As Integer, SetBawah8 As Integer Public X1a As Long, X1b As Long, Y1a As Integer, Y1b As Integer Public X2a As Long, X2b As Long, Y2a As Long, Y2b As Long Public X3a As Long, X3b As Long, Y3a As Long, Y3b As Long Public X4a As Long, X4b As Long, Y4a As Long, Y4b As Long Public X5a As Long, X5b As Long, Y5a As Long, Y5b As Long Public X6a As Long, X6b As Long, Y6a As Long, Y6b As Long Public X7a As Long, X7b As Long, Y7a As Long, Y7b As Long Public X8a As Long, X8b As Long, Y8a As Long, Y8b As Long Dim pompa1 As Long, pompa1_v As Long Dim pompa2 As Long, pompa2_v As Long Dim pakan As Long, pakan_v As Long Public TitikNolY As Integer, TitikNolX As Integer, StepGrap As Integer, StepBatas As Integer, Lebar As Integer

Sub SerialCon() Brate = "57600" 'Comm Port Data INI File not located - Load defaults. Parity = "N" NBytes = "8" StopBits = "1" PrtNumb = GetSetting(App.Title, "SettingValue", "Port", 5) CONF = Brate & "," & Parity & "," & NBytes & "," & StopBits Text1 = CONF Form1.Serial.Settings = CONF Form1.Serial.InBufferSize = 16000 Form1.Serial.OutBufferSize = 16000 Form1.Serial.CommPort = PrtNumb If Form1.Serial.PortOpen = False Then Form1.Serial.PortOpen = True

Lampiran Data Hasil Pengujian TP1 TP2 TP3

TP4 TP5 TP6 (saat tidak memberi pakan)

TP6 (saat memberi pakan) TP7 (saat non aktif) TP7 (saat aktif)

TP8 (saat non aktif) TP8 (saat aktif) TP9 (saat non atif)

TP9 (saat aktif) TP10 (saat non aktif) TP10 (saat aktif)