Showing posts sorted by relevance for query arduino-if. Sort by date Show all posts
Showing posts sorted by relevance for query arduino-if. Sort by date Show all posts

Saturday 16 May 2015

Serial received di c#


Hai sobat jufrikablog nah kali ini saya akan kembali lagi memberikan tutorial habis habisan tentang serial hahahahahahaha . yaitu serial received . langsung saja berikut prakteknya

1. Buat solution baru dan buat seperti ini di visula studio anda
2. Klik 2 kali pada form load misalnya, dan masukkan program ini
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace seri1
{
public partial class Form1 : Form
{
string rxString;
int[] lokasiY = new int[100];

public Form1()
{
InitializeComponent();
}
private Graphics objGraphic;

private void Form1_Load(object sender, EventArgs e)
{
objGraphic = CreateGraphics();
if (objGraphic == null)
return;
}

private void button1_Click(object sender, EventArgs e)
{
if (button1.Text == “Connect”)
{
button1.Text = “Disconnect”;
serialPort1.Open();
//richTextBox1.text = “”;
//a = 0;
}
else
{
button1.Text = “Connect”;
serialPort1.Close();
}
}

void SerialPort1DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
rxString = serialPort1.ReadLine();
this.Invoke(new EventHandler(DisplayText));
}

private void DisplayText(object sender, EventArgs e)
{
richTextBox1.Text += rxString;
float tinggi = float.Parse(rxString);
tinggi = 179 – (tinggi / 1023 * 179);
// geser arraynya
for (int i = 0; i < 99; i++)
{
lokasiY[i] = lokasiY[i + 1];
}
lokasiY[99] = (int)tinggi;
}

private void timer1_Tick(object sender, EventArgs e)
{
Pen pena = new Pen(Color.Black);
int awalX = 0;
int titikMulaiX, titikMulaiY, titikAkhirX, titikAkhirY;
// hapus dulu semuanya
objGraphic.Clear(Color.White);
for (int i = 0; i < 99; i++)
{
titikMulaiX = awalX + i * 5;
titikMulaiY = lokasiY[i];
titikAkhirX = awalX + (i + 1) * 5;
titikAkhirY = lokasiY[i + 1];
objGraphic.DrawLine(pena, titikMulaiX, titikMulaiY, titikAkhirX, titikAkhirY);
}
}
}
}


3. Setelah program selesai, runningkan/jalankan programnya jika bisa dijalankan dan tidak ada eror maka lanjut ke arduino
4. buat program arduino ini dan upload ke arduino yang siertai potensio untuk mengatur tegangan input dan akan di baca di aplikasi
void setup() 
{ Serial.begin(9600); }
void loop()

 { int sensorValue = analogRead(A1); delay(500); Serial.println(sensorValue, DEC); }
5. setelah itu running programnya sob ;)

ini tampilannya jika tidak menggunakan potensio
sekian semoga bermanfaat :)

 

Monday 18 May 2015

Serial transmit c#

hai sobat jufrikablog seperti biasa setiap seminggu sekali jufrikablog akan memposting tentang c# selama pelajaran c# di kuliahan ada :D . Sekilas tentang serial transmit intinya adalah mengirim dan menerima data dengan serial port dengan method write dengan parameter berupa string yang ingin dikirim. Nah untuk lebih paham mari kita buat aplikasi chat dengan serialport

1.  Buat solution baru. dan sesuaikan dengan desain di bawah

2. masukan komponen serialport dan timer
3. pada event form load maka kita buka dahulu serial portnya dengan mengetikan seperti ini
   serialPort1.Open();
4. lalu pada tombol kirim kita buat seperti ini
  serialPort1.Write(textBox1.Text);
5. lalu pada timer kita setting pembacaannya menjadi 500 ms dan visiblenya dari false ke true
6. Double click untuk timer. Ketikkan statemen di bawah ini di dalam fungsi TimerTick :

if (serialPort1.BytesToRead != 0) // maksudnya kita kondisikan bahwa jika kondisi bye tidak 0 baru menulis
{
textBox2.Text = serialPort1.ReadExisting(); // membaca dari serial port yang diterima
 }

7.Buka hyperterminal, kemudian amati data yang tampil pada hyperterminal saat anda mengirim data. (jangan lupa setting com dan baudaratenya sob)

8. Buka Arduino.exe.
9.  Ketikkan program dibawah ini pada Arduino IDE.

10. compile dan upload ke arduino dan coba kirim karater khusus sesuai program yaitu a
dan lihat led akan hidup dan coba karater lainya :D

sekian 10 langkah tutorial kali ini sob semoga bermanfaat :)

Sunday 1 December 2013

MENERIMA DATA DARI UART DENGAN SISTEM INTERUPSI

SEMANGAT PAGI sobat Blogger, pada kesempatan ini saya akan berbagi lagi nih, cara MENERIMA DATA DARI UART DENGAN SISTEM INTERUPSI. Cara kerja nya sama seperti SISTEM POOLING yaitu menerima data yang di berikan Arduino IDE kepada LCD penerima, TETAPI pada percobaan ini kita akan menggunakan SISTEM INTERUPSI bukan POOLING. Penerima data akan menggunakan BAUDRATE 9600. AYO SIMAK langkah-langkah di bawah ini :
  1. Seperti biasa, sebelum melakukan percobaannya kita harus membuat rangkaiannya. Rangkaian yang harus di buat seperti di bawah ini.
  2. Mari lakukan coding program dengan menggunakan sintaks program di bawah ini.


  3. Setelah selesai, Ayo buka Serial Monitor pada IDE dengan cara Ctrl + M. Pastikan konfigurasi Serial Monitornya Seperti tampilan di bawah ini.
  4. Contoh data yang dikirim IDE dan yang di terima di LCD penerima
  • Teks Yang DikirimkanArduino
    Teks Yang Di TerimaLCD
    Halo
    Halo
    SayaMakanNasi
    SayaMakanNasi
    Hasmar
    Hasmar

    Husein
    Husein
    Harahap
    Harahap
Adapun penjelasan sintaks pemograman di atas adalah sebagai berikut :
  • #include <LiquidCrystal.h>    //memanggil library untuklcd
    #define FOSC 16000000         //menetapkannilai FOSC bernilai 16000000
    LiquidCrystallcd(2, 3, 4, 5, 6, 7); // inisialisasi pin lcd
    String dataSerial;                    //mendekelarasikandataSerialsebagai string
    voidinitSerial(intbaudrate)
    {
    intubrr = FOSC/16/baudrate-1;
    // Mengisi register UBRR0H dan UBRR0L untukmenentukanbaudrate
    UBRR0H |= ubrr>>8;
    UBRR0L |= ubrr;
    // Mengaktifkansaluran transmitter dan receiver
    UCSR0B |= (1<<RXEN0)|(1<<TXEN0);
    // Menggunakan format data 8 bit
    UCSR0C |= (0<<UCSZ02)|(1<<UCSZ01)|(1<<UCSZ00);
    // Menggunakan 1 stop bit
    UCSR0C |= (0<<USBS0);
    // No Parity
    UCSR0C |= (0<<UPM01)|(0<<UPM00);
    // Mengaktifkan RX interrupt
    UCSR0B |= (1<<RXCIE0);
    }
    // Rutin yang akandijalankanjikaterjadiinterupsi
    ISR(USART_RX_vect){
    char data = UDR0;
    if(data=='\n')
    {
    lcd.clear();                   // tampilanlcd di hapus
    lcd.setCursor(0,0);      //Menampilkan text padabarispertama LCD
    lcd.print("Incoming Data"); //Menampilkan text “Incoming Data” padabarispertama di LCD
    lcd.setCursor(0,1);      //Menampilkan text padabariskedua LCD
    lcd.print(dataSerial);   //Menampilkan data ygdikirimmelalui serial
    dataSerial = "";
    }
    Else
    {         
    if(data!='\r')                 //jika data tidakada
    {
    dataSerial += data;      //Jikatidakada data makatampilkan text “data”
    }
    }
    }
    void setup()                 //settinganawal program
    {
    initSerial(9600);
    lcd.begin(16,2);           // tampilanlcd (kolom , baris)
    lcd.clear();                   // tampilanlcd di hapus
    sei();
    }
    void loop()                  //program looping
    {
    }

    • Perbedaan antara INTERUPSI dengan POOLING adalah Suatu kondisi yang memicu atau memaksa sitem mikrokontroler untuk menghentikan program utama dan memaksa menjalankan interupsi, SEDANGKAN sitem POOLING adalah kondisi arduino menunggu pengiriman data dari komunikasi serial.


Sunday 29 September 2013

PEMONGRAMAN DIGITAL INPUT MENGGUNAKAN FUNGSI ARDUINO PADA BUZZER



Wow, ketemu lagi nih dengan saya. Pada kesempatan kali ini saya akan membahas langkah-langkah menggunakan buzzer dengan memakai program IDE fungsi arduno. Tanpa panjang lebar yuk kita simak langkah-langkahnya sebagai berikut :
  1. Rangkailah rankaian di bawah ini dengan menggunakan ISIS 7 :
  2. Tuliskan sintaks di bawah ini dengan mengunakan program IDE. jangan lupa untuk meng-kompilasi dan menguploadnya ke arduno pada simulasi ISIS 7 :
Fungsi tiap baris sintaks di atas adalah Fungsi setup adalah sebagai penginilialisasi input dan output, pin A0 berfungsi sebagai inputdan A0 juga bernilai 1 ketika tombol tidak di tekan karena A0adalah switch.  Sedangkan pin 12 berfungsi sebagai output. Fungsi looping if dan elseadalah pengulangan nilai output yang ditampilkan, ketika syaratnya sudah terpenuhi. Seperti pada kondisi if syarat yang harus terpenuhi adalah A0 harus bernilai 0 ( ketika switch di tekan), maka outputnya akan HIGH atau MENYALA pada pin 12. Sebaliknya, pada kondisi else syarat yang harus terpenuhi adalah A0 harus bernilai 0 atau LOW, maka ouputnya  akan LOW atau MATI pada pin 12.

Apabila pin A0 bernilai HIGH yang terjadi adalah buzzer tidak akan bernilai 1 atau HIGH. Dikarenakan karena pada kondisi A0 bernilai HIGH merupakan kondisi else yang output pada pin 12akan mengeluarkan nilai 0 atau LOW, hal itu yang menyebabkan buzzer tidak berbunyi.  

Thursday 16 April 2015

VB6.0 DAN DELPHI :: Koneksi Arduino Dengan Visual Basic 6.0 dan Delphi

Visual Basic merupakan turunan bahasa pemrograman BASIC dan menawarkan pengembangan perangkat lunak komputer berbasis grafik dengan cepat. lebih lengkapnya baca disini
dengan VB berikut ini contoh potongan programnya.
  1. Program sensor suhu untuk input dari VB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// deklarasi variabel
float tempC;
int tempPin = 0;
void setup()
{
 // buka serial port, set baud rate 9600 bps
 Serial.begin(9600);
}
void loop()
{
 // baca data dari sensor
 tempC = analogRead(tempPin);
 // konversi analog ke suhu
 tempC = (5.0 * tempC * 100.0)/1024.0;
 // kirim data via serial berupa nilai biner
 Serial.print((int)tempC,BYTE);
 // tarik nafas sejenak
 delay(1000);
}
  1. Buat sebuah form pada VB6 dan salin program sebagai berikut
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; white-space: normal;">
<pre class="brush:vb"><pre class="brush:vb"><pre class="brush:vb">Private Sub Form_Load()
  With MSComm1
    'non aktifkan dulu serial port
    If .PortOpen Then .PortOpen = False
    'set serial port yang ingin digunakan
    .CommPort = 3
    'set baud rate,parity,databits,stopbits
    .Settings = "9600,N,8,1"
    'set DTR and RTS
    .DTREnable = True
    .RTSEnable = True
    'aktifkan event oncomm event
    .RThreshold = 1
    'non aktifkan event oncomm
    .SThreshold = 0
    'aktifkan serial port
    .PortOpen = True
  End With 'MSComm1
  'tampilkan tanda derajat
  Label2.Caption = Chr(176) + "C"
End Sub
Private Sub MSComm1_OnComm()
  Dim strInput As String
  With MSComm1
    'test event data masuk
    Select Case .CommEvent
      Case comEvReceive
        'tampilkan data dari Arduino
        strInput = .Input
        Label1.Caption = Asc(Mid(strInput, 1, 1))
    End Select
  End With 'MSComm1
End Sub</pre>
</pre>
</pre>
<p> </p>
<p></p></span>