Getting Started with Arduino gives you lots of ideas for Arduino projects and helps you get going on them right away.
Showing posts sorted by relevance for query arduino-9600. Sort by date Show all posts
Showing posts sorted by relevance for query arduino-9600. 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 :)
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 :
- Seperti biasa, sebelum melakukan percobaannya kita harus membuat rangkaiannya. Rangkaian yang harus di buat seperti di bawah ini.
- Mari lakukan coding program dengan menggunakan sintaks program di bawah ini.
- Setelah selesai, Ayo buka Serial Monitor pada IDE dengan cara Ctrl + M. Pastikan konfigurasi Serial Monitornya Seperti tampilan di bawah ini.
- Contoh data yang dikirim IDE dan yang di terima di LCD penerima
- Teks Yang DikirimkanArduinoTeks Yang Di TerimaLCDHaloHaloSayaMakanNasiSayaMakanNasiHasmarHasmarHuseinHuseinHarahapHarahap
- #include <LiquidCrystal.h> //memanggil library untuklcd#define FOSC 16000000 //menetapkannilai FOSC bernilai 16000000LiquidCrystallcd(2, 3, 4, 5, 6, 7); // inisialisasi pin lcdString dataSerial; //mendekelarasikandataSerialsebagai stringvoidinitSerial(intbaudrate){intubrr = FOSC/16/baudrate-1;// Mengisi register UBRR0H dan UBRR0L untukmenentukanbaudrateUBRR0H |= ubrr>>8;UBRR0L |= ubrr;// Mengaktifkansaluran transmitter dan receiverUCSR0B |= (1<<RXEN0)|(1<<TXEN0);// Menggunakan format data 8 bitUCSR0C |= (0<<UCSZ02)|(1<<UCSZ01)|(1<<UCSZ00);// Menggunakan 1 stop bitUCSR0C |= (0<<USBS0);// No ParityUCSR0C |= (0<<UPM01)|(0<<UPM00);// Mengaktifkan RX interruptUCSR0B |= (1<<RXCIE0);}// Rutin yang akandijalankanjikaterjadiinterupsiISR(USART_RX_vect){char data = UDR0;if(data=='\n'){lcd.clear(); // tampilanlcd di hapuslcd.setCursor(0,0); //Menampilkan text padabarispertama LCDlcd.print("Incoming Data"); //Menampilkan text “Incoming Data” padabarispertama di LCDlcd.setCursor(0,1); //Menampilkan text padabariskedua LCDlcd.print(dataSerial); //Menampilkan data ygdikirimmelalui serialdataSerial = "";}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 hapussei();}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.
Subscribe to:
Posts (Atom)