Koneksi dan pengaturan Arduino. Menghubungkan dan memprogram Arduino untuk pemula Arduino tidak memulai Windows 7

Apakah mempelajari mikrokontroler tampak rumit dan tidak dapat dipahami? Sebelum Arudino muncul, memang tidak mudah dan membutuhkan seperangkat programmer dan peralatan tertentu lainnya.

Ini adalah sejenis perancang elektronik. Tujuan awal dari proyek ini adalah untuk memungkinkan orang mempelajari cara memprogram perangkat elektronik dengan mudah, sambil mencurahkan waktu minimal untuk komponen elektronik.

Perakitan sirkuit kompleks dan sambungan papan dapat dilakukan tanpa besi solder, tetapi dengan bantuan jumper dengan sambungan pria dan wanita yang dapat dilepas. Dengan cara ini, elemen terpasang dan papan ekspansi dapat dihubungkan, yang dalam leksikon Arduino disebut “Perisai”.

Papan Arduino apa yang pertama kali dibeli untuk pemula?

Ini dianggap sebagai papan dasar dan paling populer. Papan ini seukuran kartu kredit. Cukup besar. Kebanyakan perisai yang dijual sangat cocok dengannya. Papan memiliki soket untuk menghubungkan perangkat eksternal.

Di toko domestik pada tahun 2017 harganya sekitar 4-5 dolar. Pada model modern, jantungnya adalah Atmega328.

Gambar board arduino dan penjelasan fungsi masing-masing pin pinout arduino uno

Mikrokontroler pada board ini berupa chip panjang dalam paket DIP28 yang artinya memiliki 28 kaki.

Papan paling populer berikutnya harganya hampir dua kali lipat dari yang sebelumnya - 2-3 dolar. Ini adalah biaya. Papan saat ini dibangun di atas Atmega328 yang sama, secara fungsional mirip dengan UNO, perbedaannya terletak pada ukuran dan solusi untuk berkoordinasi dengan USB, lebih lanjut tentang ini nanti. Perbedaan lainnya adalah colokan berbentuk pin disediakan untuk menghubungkan perangkat ke papan.

Jumlah pin (kaki) papan ini sama, tetapi Anda dapat melihat bahwa mikrokontroler dibuat dalam paket TQFP32 yang lebih kompak, ADC6 dan ADC7 ditambahkan ke casing, dua kaki “ekstra” lainnya menduplikasi bus daya . Ukurannya cukup kompak – kira-kira seukuran ibu jari.

Papan paling populer ketiga adalah, tidak memiliki port USB untuk menghubungkan ke komputer; Saya akan memberi tahu Anda bagaimana koneksi dibuat nanti.

Ini adalah papan terkecil dari semua yang diulas, selain itu mirip dengan dua papan sebelumnya, dan jantungnya masih Atmega328. Kami tidak akan mempertimbangkan papan lain, karena ini adalah artikel untuk pemula, dan membandingkan papan adalah topik untuk artikel terpisah.

Di bagian atas terdapat diagram koneksi USB-UART, pin “GRN” terhubung ke rangkaian reset mikrokontroler, bisa dipanggil dengan cara lain, nanti Anda akan mengetahui mengapa ini diperlukan.

Meskipun UNO bagus untuk pembuatan prototipe, Nano dan Pro Mini bagus untuk menyelesaikan proyek Anda karena hanya memakan sedikit ruang.

Bagaimana cara menghubungkan Arduino ke komputer?

Arduino Uno dan Nano terhubung ke komputer melalui USB. Namun, tidak ada dukungan perangkat keras untuk port USB; solusi rangkaian konversi level, biasanya disebut USB-to-Serial atau USB-UART (rs-232), digunakan di sini. Pada saat yang sama, bootloader Arduino khusus di-flash ke mikrokontroler, yang memungkinkan flashing melalui bus ini.

Arduino Uno mengimplementasikan koneksi ini pada mikrokontroler dengan dukungan USB - ATmega16U2 (AT16U2). Ternyata mikrokontroler tambahan di board diperlukan untuk mem-flash firmware mikrokontroler utama.

Di Arduino Nano, ini diimplementasikan oleh chip FT232R, atau analognya CH340. Ini bukan mikrokontroler - ini adalah konverter level, fakta ini memudahkan Anda merakit Arduino Nano dari awal dengan tangan Anda sendiri.

Biasanya, driver diinstal secara otomatis saat Anda menghubungkan papan Arduino. Namun, ketika saya membeli salinan Arduino Nano Cina, perangkat itu teridentifikasi, tetapi tidak berfungsi, ada stiker bundar di konverter dengan informasi tentang tanggal rilis, saya tidak tahu apakah ini dilakukan dengan sengaja , tapi saat saya kupas, saya melihat tanda CH340.

Saya belum pernah mengalami ini sebelumnya dan berpikir bahwa semua konverter USB-UART dirakit pada FT232, saya harus mengunduh drivernya, sangat mudah ditemukan dengan mencari “driver Arduino ch340”. Setelah instalasi sederhana, semuanya berfungsi!

Mikrokontroler juga dapat diberi daya melalui port USB yang sama, mis. jika Anda menghubungkannya ke adaptor dari ponsel, sistem Anda akan berfungsi.

Apa yang harus saya lakukan jika board saya tidak memiliki USB?

Papan Arduino Pro Mini memiliki dimensi yang lebih kecil. Hal ini dicapai dengan melepas konektor USB untuk firmware dan konverter USB-UART yang sama. Oleh karena itu, harus dibeli secara terpisah. Konverter paling sederhana berdasarkan CH340 (termurah), CPL2102 dan FT232R, berharga mulai 1 dolar.

Saat membeli, perhatikan voltase apa yang dirancang untuk adaptor ini. Pro mini hadir dalam versi 3,3 dan 5 V, konverter sering kali memiliki jumper untuk mengalihkan tegangan suplai.

Saat mem-flash firmware Pro Mini, segera sebelum memulainya, Anda perlu menekan RESET, namun pada konverter dengan DTR hal ini tidak diperlukan, diagram koneksi ada pada gambar di bawah.

Mereka terhubung dengan terminal khusus “Mama-Mama” (perempuan-perempuan).

Sebenarnya semua sambungan dapat dibuat dengan menggunakan terminal seperti itu (Dupont), terminal tersebut dilengkapi di kedua sisi dengan soket dan colokan, dan di satu sisi terdapat soket dan di sisi lain terdapat colokan.

Bagaimana cara menulis program untuk Arduino?

Untuk bekerja dengan sketsa (nama firmware dalam bahasa insinyur Arduino), terdapat lingkungan pengembangan terintegrasi khusus untuk Arduino IDE, Anda dapat mengunduhnya secara gratis dari situs web resmi atau dari sumber tematik apa pun; biasanya tidak ada masalah dengan instalasi.

Seperti inilah tampilan antarmuka programnya. Anda dapat menulis program dalam bahasa C AVR sederhana yang dirancang khusus untuk Arduino, pada dasarnya sekumpulan perpustakaan yang disebut Wiring, serta dalam C AVR murni. Penggunaannya menyederhanakan kode dan mempercepat pengoperasiannya.

Di bagian atas jendela terdapat menu familiar di mana Anda dapat membuka file, pengaturan, memilih papan yang Anda gunakan (Uno, Nano dan banyak lagi lainnya) dan juga membuka proyek dengan contoh kode yang sudah jadi. Di bawah ini adalah serangkaian tombol untuk bekerja dengan firmware, Anda akan melihat penetapan tombol pada gambar di bawah.

Di bagian bawah jendela terdapat area untuk menampilkan informasi tentang proyek, status kode, firmware, dan adanya kesalahan.

Dasar-dasar Pemrograman Arduino IDE

Di awal kode, Anda perlu mendeklarasikan variabel dan menyertakan perpustakaan tambahan, jika ada, hal ini dilakukan sebagai berikut:

#sertakan biblioteka.h; // menghubungkan perpustakaan bernama “Biblioteka.h”

#define changenaya 1234; // Deklarasikan variabel dengan nilai 1234

Perintah Define memungkinkan kompiler untuk memilih jenis variabel itu sendiri, tetapi Anda dapat mengaturnya secara manual, misalnya integer int, atau floating-point float.

int dipimpin = 13; // membuat variabel “led” dan memberinya nilai “13”

Program dapat menentukan keadaan pin sebagai 1 atau 0. 1 merupakan satuan logika, jika pin 13 bernilai 1 maka tegangan pada pin fisiknya akan sama dengan tegangan suplai mikrokontroler (untuk Arduino UNO dan Nano - 5V)

Sinyal digital ditulis menggunakan perintah digitalWrite (pin, value), misalnya:

digitalWrite(led, tinggi); //tulis satu ke pin 13 (kami mendeklarasikannya di atas) log. Satuan.

Seperti yang dapat Anda pahami, port diakses sesuai dengan penomoran di papan, sesuai dengan nomor tersebut. Berikut ini contoh yang mirip dengan kode sebelumnya:

digitalWrite(13, tinggi); // setel pin 13 ke satu

Fungsi waktu tunda yang sering digunakan disebut dengan perintah delay(), yang nilainya ditentukan dalam milidetik, mikrodetik dicapai dengan menggunakan

penundaanMicrodetik() Penundaan(1000); //mikrokontroler akan menunggu 1000 ms (1 detik)

Pengaturan port input dan output ditentukan dalam fungsi void setup() dengan perintah:

pinMode(NOMERPORTA, KELUARAN/MASUK); // argumen - nama variabel atau nomor port, input atau output untuk dipilih

Pengertian program Blink yang pertama

Sebagai semacam “Halo Dunia” untuk mikrokontroler, ada program untuk mengedipkan LED, mari kita lihat kodenya:

Pada awalnya, dengan perintah pinMode, kami memerintahkan mikrokontroler untuk menetapkan port dengan LED ke output. Anda telah memperhatikan bahwa dalam kode tidak ada deklarasi variabel "LED_BUILTIN", faktanya adalah bahwa di Uno, Nano dan papan lainnya, LED bawaan dihubungkan ke pin 13 dari pabrik dan disolder pada papan papan. Ini dapat digunakan oleh Anda untuk ditampilkan dalam proyek Anda atau untuk pengujian sederhana terhadap program flashing Anda.

Selanjutnya kita setel pin yang akan disolder LED menjadi satu (5 V), baris berikutnya membuat MK menunggu 1 detik, lalu set pin LED_BUILTIN ke nol, tunggu sedetik dan program berulang dalam lingkaran, jadi ketika LED_BUILTIN sama dengan 1 - LED (dan beban lain yang terhubung ke port) dihidupkan, ketika pada 0 dimatikan.

Kami membaca nilai dari port analog dan menggunakan data yang dibaca

Mikrokontroler AVR Atmega328 memiliki konverter analog-ke-digital 10-bit bawaan. ADC 10-bit memungkinkan Anda membaca nilai tegangan dari 0 hingga 5 volt, dalam langkah 1/1024 dari seluruh ayunan amplitudo sinyal (5 V).

Agar lebih jelas mari kita perhatikan keadaan, misalkan nilai tegangan pada input analog adalah 2,5 V, artinya mikrokontroler akan membaca nilai dari pin “512”, jika tegangan 0 - “0”, dan jika 5 V - (1023). 1023 - karena penghitungan dimulai dari 0, mis. 0, 1, 2, 3, dst. hingga total 1023 - 1024 nilai.

Ini adalah tampilannya dalam kode, menggunakan sketsa standar “analogInput” sebagai contoh

int sensorPin = A0;

int pin led = 13;

int nilai sensor = 0;

pinMode(ledPin, KELUARAN);

sensorValue = analogRead(sensorPin);

digitalWrite(ledPin, TINGGI);

penundaan(nilai sensor);

digitalWrite(ledPin, RENDAH);

penundaan(nilai sensor);

Kami mendeklarasikan variabel:

    Ledpin - kami secara mandiri menetapkan pin dengan LED bawaan ke output dan memberinya nama individual;

    sensorPin - input analog, diatur sesuai dengan tanda di papan: A0, A1, A2, dll.;

    sensorValue - variabel untuk menyimpan nilai baca integer dan selanjutnya bekerja dengannya.

Kode berfungsi seperti ini: sensorValue menyimpan nilai analog yang dibaca dari sensorPin (perintah analogRead). - di sini pekerjaan dengan sinyal analog berakhir, lalu semuanya seperti pada contoh sebelumnya.

Kami menulis satu ke ledPin, LED menyala dan menunggu waktu yang sama dengan nilai sensorValue, mis. dari 0 hingga 1023 milidetik. Kami mematikan LED dan menunggu jangka waktu ini lagi, setelah itu kode diulangi.

Jadi, dengan memposisikan potensiometer kita mengatur frekuensi kedipan LED.

Fungsi peta untuk Arudino

Tidak semua fungsi aktuator (saya tidak tahu ada) mendukung argumen “1023”, misalnya servo dibatasi oleh sudut putaran yaitu per setengah putaran (180 derajat) (setengah putaran) motor servo argumen fungsi maksimum adalah “180”

Sekarang tentang sintaksnya: map (nilai yang kita terjemahkan, nilai masukan minimum, nilai masukan maksimum, nilai keluaran minimum, nilai keluaran maksimum).

Dalam kodenya terlihat seperti ini:

(peta(analogRead(pot), 0, 1023, 0, 180));

Kita membaca nilai dari potensiometer (analogRead(pot)) dari 0 hingga 1023, dan pada output kita mendapatkan angka dari 0 hingga 180

Nilai peta nilai:

Dalam praktiknya, kami menerapkan ini pada pengoperasian kode drive servo yang sama, lihat kode dari Arduino IDE, jika Anda membaca bagian sebelumnya dengan cermat, maka tidak memerlukan penjelasan apa pun.

Dan diagram koneksi.

Kesimpulan Arduino adalah alat yang sangat nyaman untuk belajar bekerja dengan mikrokontroler. Dan jika Anda menggunakan C AVR murni, atau kadang-kadang disebut "C Murni", Anda akan mengurangi bobot kode secara signifikan, dan lebih banyak lagi yang akan muat di memori mikrokontroler, sebagai hasilnya Anda akan mendapatkan pabrik yang sangat baik- membuat papan debugging dengan kemampuan untuk mem-flash firmware melalui USB.

Saya suka Arduino. Sangat disayangkan bahwa banyak pemrogram mikrokontroler berpengalaman tanpa alasan mengkritiknya karena terlalu disederhanakan. Pada prinsipnya, hanya bahasanya yang disederhanakan, tetapi tidak ada yang memaksa Anda untuk menggunakannya, ditambah lagi Anda dapat mem-flash mikrokontroler melalui konektor ICSP dan mengunggah kode yang Anda inginkan di sana, tanpa bootloader yang tidak perlu.

Bagi mereka yang ingin bermain-main dengan elektronik, seperti seorang desainer tingkat lanjut, ini sempurna, dan bagi programmer berpengalaman, sebagai papan yang tidak memerlukan perakitan, ini juga akan berguna!

Untuk informasi lebih lanjut tentang Arduino dan fitur penggunaannya di berbagai rangkaian, lihat e-book - .

Saat memasang Arduio IDE, driver yang diperlukan untuk bekerja dengan papan Arduino asli harus diinstal secara otomatis. Namun triknya adalah papan Cina memiliki pengontrol antarmuka USB yang lebih murah, diperlukan driver khusus untuk bekerja dengannya. Pengontrol Cina tidak lebih buruk, hanya lebih murah =)

Jika karena alasan tertentu Anda belum menginstal driver Arduino, Anda dapat menginstalnya secara manual dari folder program.
Driver CH341 untuk Windows dapat diunduh, atau Anda dapat mencarinya sendiri di Google.


Selanjutnya sambungkan Arduino ke komputer, tunggu hingga Windows mengenali dan mengingatnya (koneksi pertama).
P.S. Sebuah jendela akan muncul memberitahu Anda bahwa perangkat telah dikenali dan terhubung ke port COM dengan nomor tertentu. berbeda dengan nomor 1

Secara default, di Linux Anda dapat mem-flash Arduino Cina tanpa peralatan tambahan. Tapi pada awalnya tidak ada yang berhasil dan Arduino IDE membuat kesalahan.
Inilah masalahnya. Linux (dalam kasus saya linux mint) mendeteksi Arduino sebagai perangkat ttyUSB*. Biasanya ini adalah ttyUSB0. Ini dapat diketahui dengan perintah pesan di terminal.
Artinya, sebuah antarmuka muncul di sistem /dev/ttyUSB0. Tetapi untuk menggunakannya, Anda memerlukan hak akses. Membaca dan menulis ke perangkat /dev/ttyUSB0 memiliki pengguna root dan pengguna grup dialout. Lebih baik menghindari bekerja dengan hak pengguna super, jadi Anda harus menambahkan pengguna Anda ke grup dialout. Hal ini dapat dilakukan dengan perintah berikut (perhatikan perintah whoami ada di tanda kutip belakang)
sudo usermod -a -G panggilan `whoami`
Setelah ini Anda perlu login ulang. Selanjutnya, luncurkan Arduino IDE dan di menu “Tools-Port” centang kotak di sebelahnya /dev/ttyUSB0.

Terimakasih atas infonya Vlad Shemenkov

Pada artikel ini kita akan melihat cara menginstal driver untuk papan yang dikembangkan oleh Arduino dan memiliki adaptor USB ke UART standar (yang memiliki driver default di folder Arduino IDE) seperti ATmega16U2, FT232RL.

Jika Anda memiliki papan versi Cina dengan konverter ke CH340G silakan gunakan panduan ini

Menginstal driver di lingkungan operasi Windows

Sebagai contoh, kita akan melihat instalasi driver untuk Arduino UNO.

Mengingat fakta bahwa papan Arduino UNO dan Arduino Mega menggunakan sirkuit mikro yang sama dengan chip konverter USB ke UART (versi awal Atmega 8U2, versi R3 sudah menggunakan 16U2), instalasi akan dilanjutkan dengan cara yang sama. Demikian pula, semuanya akan terjadi pada Arduino nano, meskipun nano menggunakan FT232RL sebagai chip konverter.

Bagian 1. Instalasi driver otomatis

Jika komputer Anda terhubung ke Internet, kemungkinan besar driver akan diinstal secara otomatis dan Anda tidak perlu membaca artikel selanjutnya.

Bagian 2. Instalasi driver manual

Jadi, setelah membongkar lingkungan, kami menghubungkan papan Arduino ke komputer. Jika driver tidak diinstal secara otomatis, Anda akan melihat jendela berikut:

Jangan khawatir. Ini adalah kejadian umum. Driver harus diinstal secara manual.

Buka Komputer Saya/Properti/Pengelola Perangkat.

Klik dua kali pada "Perangkat Tidak Dikenal".

Klik "Perbarui Driver".

Pilih "Cari driver di komputer ini".

Kami menunjukkan direktori tempat Anda menginstal Arduino IDE, atau lebih tepatnya folder anak “driver”. Biarkan kotak centang "Sertakan subfolder bersarang".

Windows Firewall siap seperti biasa. Klik "Tetap instal driver ini".

Kami menunggu beberapa waktu. Itu saja, driver sudah diinstal dan board kami siap digunakan.

Setelah Anda berhasil menyelesaikan langkah-langkah tersebut, yang tersisa hanyalah membuka IDE, pilih Pelabuhan COM yang memutuskan papan tersebut, pilih papan itu sendiri dari daftar dan terjun langsung ke dunia Arduino yang menarik.

Pada artikel ini, saya memutuskan untuk menyusun panduan langkah demi langkah lengkap untuk pemula Arduino. Kita akan melihat apa itu Arduino, apa yang Anda perlukan untuk mulai belajar, di mana mengunduh dan cara menginstal dan mengkonfigurasi lingkungan pemrograman, cara kerjanya dan cara menggunakan bahasa pemrograman, dan banyak lagi yang diperlukan untuk membuat Arduino yang lengkap. perangkat kompleks berdasarkan keluarga mikrokontroler ini.

Disini saya akan mencoba memberikan rangkuman minimal agar anda memahami prinsip bekerja dengan Arduino. Untuk lebih mendalami dunia mikrokontroler yang dapat diprogram, perhatikan bagian dan artikel lain di situs ini. Saya akan meninggalkan tautan ke materi lain di situs ini untuk studi lebih rinci tentang beberapa aspek.

Apa itu Arduino dan untuk apa?

Arduino adalah kit konstruksi elektronik yang memungkinkan siapa saja membuat berbagai perangkat elektro-mekanis. Arduino terdiri dari perangkat lunak dan perangkat keras. Bagian perangkat lunak mencakup lingkungan pengembangan (program untuk menulis dan men-debug firmware), banyak perpustakaan yang siap pakai dan nyaman, dan bahasa pemrograman yang disederhanakan. Perangkat kerasnya mencakup sejumlah besar mikrokontroler dan modul siap pakai untuknya. Berkat ini, bekerja dengan Arduino menjadi sangat mudah!

Dengan bantuan Arduino Anda dapat mempelajari pemrograman, teknik elektro, dan mekanik. Namun ini bukan sekadar konstruktor pendidikan. Berdasarkan itu, Anda dapat membuat perangkat yang sangat berguna.
Mulai dari lampu berkedip sederhana, stasiun cuaca, sistem otomasi dan diakhiri dengan sistem rumah pintar, mesin CNC dan kendaraan udara tak berawak. Kemungkinannya bahkan tidak dibatasi oleh imajinasi Anda, karena ada banyak sekali instruksi dan ide untuk implementasi.

Kit Pemula Arduino

Untuk mulai mempelajari Arduino, Anda perlu memperoleh papan mikrokontroler itu sendiri dan komponen tambahan. Yang terbaik adalah membeli starter kit Arduino, tetapi Anda dapat memilih sendiri semua yang Anda butuhkan. Saya sarankan memilih satu set karena lebih mudah dan seringkali lebih murah. Berikut ini tautan ke set terbaik dan bagian individual yang pasti perlu Anda pelajari:

Kit Arduino dasar untuk pemula:Membeli
Set besar untuk pelatihan dan proyek pertama:Membeli
Kumpulan sensor dan modul tambahan:Membeli
Arduino Uno adalah model paling dasar dan nyaman dari lini:Membeli
Papan tempat memotong roti tanpa solder untuk memudahkan pembelajaran dan pembuatan prototipe:Membeli
Kumpulan kabel dengan konektor yang nyaman:Membeli
Perangkat LED:Membeli
Paket resistor:Membeli
Tombol:Membeli
Potensiometer:Membeli

Lingkungan pengembangan Arduino IDE

Untuk menulis, men-debug, dan mengunduh firmware, Anda perlu mengunduh dan menginstal Arduino IDE. Ini adalah program yang sangat sederhana dan nyaman. Di situs web saya, saya telah menjelaskan proses pengunduhan, instalasi, dan konfigurasi lingkungan pengembangan. Oleh karena itu, di sini saya hanya akan meninggalkan tautan ke versi terbaru dari program dan ke

Versi: kapan jendela Mac OS X Linux
1.8.2

Bahasa pemrograman Arduino

Ketika Anda memiliki papan mikrokontroler di tangan Anda dan lingkungan pengembangan terinstal di komputer Anda, Anda dapat mulai menulis sketsa pertama Anda (firmware). Untuk melakukan ini, Anda perlu menguasai bahasa pemrograman.

Pemrograman Arduino menggunakan versi sederhana dari bahasa C++ dengan fungsi yang telah ditentukan sebelumnya. Seperti dalam bahasa pemrograman mirip C lainnya, ada sejumlah aturan untuk menulis kode. Inilah yang paling mendasar:

  • Setiap instruksi harus diikuti dengan titik koma (;)
  • Sebelum mendeklarasikan suatu fungsi, Anda harus menentukan tipe data yang dikembalikan oleh fungsi tersebut, atau batal jika fungsi tersebut tidak mengembalikan nilai.
  • Penting juga untuk menunjukkan tipe data sebelum mendeklarasikan variabel.
  • Komentar ditunjuk: // Inline dan /* blok */

Anda dapat mempelajari lebih lanjut tentang tipe data, fungsi, variabel, operator dan konstruksi bahasa di halaman Anda tidak perlu menghafal dan mengingat semua informasi ini. Anda selalu dapat membuka buku referensi dan melihat sintaks fungsi tertentu.

Semua firmware Arduino harus berisi setidaknya 2 fungsi. Ini adalah setup() dan loop().

fungsi pengaturan

Agar semuanya berfungsi, kita perlu menulis sketsa. Mari kita buat LED menyala setelah menekan tombol, dan mati setelah ditekan berikutnya. Inilah sketsa pertama kami:

// variabel dengan pin perangkat yang terhubung int switchPin = 8; int pin led = 11; // variabel untuk menyimpan status tombol dan LED boolean lastButton = LOW; boolean currentButton = RENDAH; boolean ledOn = salah; void setup() ( pinMode(switchPin, INPUT); pinMode(ledPin, OUTPUT); ) // fungsi untuk melakukan debouncing boolean debounse(boolean last) ( boolean current = digitalRead(switchPin); if(last != current) ( delay ( 5); current = digitalRead(switchPin); ) mengembalikan arus; ) void loop() ( currentButton = debounse(lastButton); if(lastButton == LOW && currentButton == HIGH) ( ledOn = !ledOn; ) lastButton = currentButton ; digitalWrite(ledPin, ledOn); )

// variabel dengan pin perangkat yang terhubung

int saklarPin = 8;

int pin led = 11;

// variabel untuk menyimpan status tombol dan LED

boolean lastButton = RENDAH;

boolean currentButton = RENDAH;

boolean ledOn = salah;

batalkan pengaturan() (

pinMode(switchPin, INPUT);

pinMode(ledPin, KELUARAN);

// berfungsi untuk melakukan debouncing

boolean debounse (boolean terakhir ) (

arus boolean = digitalRead(switchPin);

jika (terakhir != saat ini ) (

penundaan(5);

saat ini = digitalRead(switchPin);

kembali saat ini;

lingkaran kosong() (

currentButton = debounse(lastButton);

if (lastButton == RENDAH && currentButton == TINGGI ) (

ledOn = ! memimpin;

tombol terakhir = tombol saat ini;

digitalWrite(ledPin, ledOn);

Dalam sketsa ini, saya membuat fungsi debounse tambahan untuk menekan pantulan kontak. Ada informasi tentang bouncing kontak di situs web saya. Pastikan untuk membaca materi ini.

PWM Arduino

Modulasi lebar pulsa (PWM) adalah proses pengendalian tegangan menggunakan siklus kerja suatu sinyal. Artinya, dengan menggunakan PWM kita bisa mengontrol beban dengan lancar. Misalnya, Anda dapat mengubah kecerahan LED dengan lancar, namun perubahan kecerahan ini diperoleh bukan dengan menurunkan voltase, namun dengan meningkatkan interval sinyal rendah. Prinsip operasi PWM ditunjukkan pada diagram ini:

Saat kami menerapkan PWM ke LED, LED mulai menyala dan padam dengan cepat. Mata manusia tidak dapat melihatnya karena frekuensinya yang terlalu tinggi. Namun saat merekam video, kemungkinan besar Anda akan melihat momen ketika LED tidak menyala. Hal ini akan terjadi asalkan kecepatan frame kamera bukan kelipatan frekuensi PWM.

Arduino memiliki modulator lebar pulsa bawaan. Anda dapat menggunakan PWM hanya pada pin yang didukung oleh mikrokontroler. Misalnya Arduino Uno dan Nano memiliki 6 pin PWM: pin D3, D5, D6, D9, D10 dan D11. Pinnya mungkin berbeda di papan lain. Anda dapat menemukan deskripsi papan yang Anda minati

Untuk menggunakan PWM di Arduino terdapat fungsi yang dibutuhkan sebagai argumen nomor pin dan nilai PWM dari 0 hingga 255. 0 adalah 0% terisi dengan sinyal tinggi, dan 255 adalah 100%. Mari kita menulis sketsa sederhana sebagai contoh. Mari kita buat LED menyala dengan mulus, tunggu satu detik dan padam dengan mulus, dan seterusnya tanpa batas. Berikut adalah contoh penggunaan fungsi ini:

// LED terhubung ke pin 11 int ledPin = 11; batal setup() ( pinMode(ledPin, OUTPUT); ) void loop() ( untuk (int i = 0; i< 255; i++) { analogWrite(ledPin, i); delay(5); } delay(1000); for (int i = 255; i >0; saya--) ( analogWrite(ledPin, i); penundaan(5); ) )

// LED terhubung ke pin 11

int pin led = 11;

batalkan pengaturan() (

pinMode(ledPin, KELUARAN);

lingkaran kosong() (

untuk (int saya = 0 ; saya< 255 ; i ++ ) {

analogWrite(ledPin,i);

penundaan(5);

penundaan(1000);

Dalam instruksi ini, sebagai contoh, kami akan mempertimbangkan untuk memulai di sistem operasi Windows. Untuk sistem operasi Microsoft (Windows 2000/Vista), perbedaannya kecil, terutama berkaitan dengan nama tab di Device Manager. Di lingkungan operasi lain, seperti Linux, FreeBSD, Mac OS X, dll., prosedur pengaturannya sangat berbeda. Jika Anda perlu mengatur pekerjaan dengan perangkat lunak ini, kami sarankan mencari jawaban atas pertanyaan di situs web utama pengembang //www.arduino.cc.

Mari kita ambil Arduino Uno sebagai platform yang terhubung. Perbedaannya dengan papan lain sangat minim.

Kabel untuk komunikasi dengan PC

Untuk mentransfer data dari komputer pribadi ke Arduino, Anda perlu mencari kabel yang sesuai. Kabel tidak disertakan dengan papan individual; hanya disertakan dalam starter kit Arduino untuk berlatih desainer-programmer.

Arduino UTIDAK, Arduino Mmisalnya 2560 dihubungkan dengan kabel dengan colokan USB tipe A. Kabel ini sering digunakan untuk menghubungkan printer atau pemindai.

Arduino Leonardo, Arduino Jatuh tempo Untuk koneksi mereka memiliki soket micro USB tipe B.

Arduino Nano, Freeduino Nano terhubung melalui soket mini USB tipe B.

Untuk menghubungkan Freeduino MaxSerial Anda memerlukan kabel port serial 9M-9F.

ada masalah : Arduino IDE tidak dapat dijalankan.

Memperbaiki.

Kemungkinan besar, komputer memiliki instalasi JRE (Java Runtime Environment) yang tidak sesuai, yang diperlukan untuk menjalankan aplikasi grafis.

Kembali menginstal ulang Arduino IDE: kali ini penginstal akan memulai pekerjaan menyiapkan JRE.

Menghubungkan papan Arduino ke komputer

Setelah berhasil menjalankan Arduino IDE, saatnya menghubungkan beberapa platform Arduino ke komputer Anda. Seperti yang sudah Anda ketahui, menghubungkan papan Arduino ke PC dilakukan melalui kabel USB.

Dengan menghubungkan konsol Arduino ke PC, satu LED “ON” akan menyala dan “L” lainnya akan mulai berkedip. Artinya daya disuplai melalui kabel dan mikrokontroler sudah mulai menjalankan program Blink yang telah disetel pabrik.

Yang tersisa hanyalah mencari tahu nomor port COM apa yang ditetapkan komputer ke papan Arduino kita? , yang penting agar perangkat lunak Arduino IDE berfungsi dengan benar dengan perangkat baru.

Nomor port COM dapat ditemukan di tab “Device Manager”, “Ports (COM dan LPT)”.

Pada sistem Windows, kemungkinan besar Arduino Uno kita dengan antarmuka serial akan diberi salah satu port COM1 atau COM2. Untuk Arduino dengan pengontrol USB, port inputnya adalah COM4, ​​​​COM5, COM6 atau lebih tinggi.

Pada sistem Linux, port serialnya adalah USB0 atau USB1.

Perangkat Arduino baru ditampilkan di "Device Manager" - ini berarti sistem operasi mengenali board kami, menemukan driver USB yang sesuai untuknya, dan menetapkan nomor ke antarmukanya. Saat menghubungkan papan Arduino lain secara bersamaan, papan tersebut akan diberi nomor port yang berbeda.

Ada masalah: Saat Anda menghubungkan papan Arduino ke komputer Anda, papan tersebut tidak muncul di Pengelola Perangkat.

Memperbaiki:

  1. Kabel atau port USB tidak dimasukkan seluruhnya atau rusak.
  2. Tidak ada driver untuk papan Arduino ini. Jika Anda memiliki Arduino Cina atau dari pabrikan lain yang tidak dikenal, coba instal ulang driver USB secara manual.
  3. Diblokir oleh program antivirus.
  4. Papan Arduino rusak.

Di Arduino IDE yang terbuka, buka: Alat > Port > pilih nomor port COM - beri tahu program nomor port yang terhubung dengan platform mikroprosesor Arduino.

Agar program firmware Arduino IDE tidak ragu dengan apa yang harus digunakan, kami menunjukkan jenis papan kami yang terhubung. Untuk melakukannya, masuk ke menu: Tools > Board > pilih jenis board Arduino Anda.

Ada masalah: Tidak ada satu pun port COM di tab Port.

Memperbaiki.

Jelas sekali, koneksi antara perangkat Arduino dan komputer terputus. Pulihkan koneksi stabil ke PC Anda.

Atau tidak ada pengemudi. Anda dapat mendownloadnya di akhir artikel.

Cara memeriksa koneksi perangkat Arduino

Semua data numerik yang diterima melalui port COM dikeluarkan ke Port Monitor dalam lingkungan grafis nyaman yang sama, Arduino IDE. Oleh karena itu, dengan mengklik ikon "Port Monitor" yang sesuai di sudut kanan atas konsol atau dengan menemukan item yang sesuai di menu Alat, Anda dapat melihat dengan mengubah angka di jendela yang terbuka bahwa data sedang dikirim melalui kabel USB , yang berarti papan Arduino terhubung dengan aman.

Harap dicatat bahwa di bagian bawah jendela Port Monitor, informasi tentang kecepatan operasi dengan port COM “19200 baud” (19200 bps) ditampilkan. Kecepatan ini diatur secara default pada sketsa yang sudah diinstal sebelumnya di papan Arduino. Sketsa ini berisi baris Serial.begin(19200), di mana Anda dapat mengatur baud rate apa pun yang diperlukan, tetapi ini hanya mungkin jika bekerja melalui kabel USB. Jika transfer data terjadi melalui saluran radio Bluetooth, maka nilai tukar dengan port COM harus diatur terlebih dahulu, sama persis dengan yang kita pilih saat men-debug modul Bluetooth.

Ada masalah: Arduino IDE sangat lambat saat menavigasi menu.

Memperbaiki.

Di Device Manager, di tab Bluetooth Serial, matikan koneksi Bluetooth ke ponsel Anda. Semua koneksi eksternal melalui Bluetooth menghabiskan banyak memori virtual.

Koneksi dibuat, lingkungan pengembangan dikonfigurasi - sekarang Anda memiliki alat yang berfungsi dengan baik untuk mem-flash mikrokontroler seri AVR apa pun: ATtiny, ATmega, AT90S, AT90CAN, AT90PWM.

Lingkungan pengembangan Arduino IDE memiliki banyak sampel siap pakai untuk berbagai tugas, tetapi untuk memeriksa respons papan terhadap flashing, cukup dengan membuat perubahan kecil pada program Blink yang sudah diinstal sebelumnya (mengedipkan LED “L” di papan).

Cukup dengan membuat perubahan pada baris penundaan (1000) di sketsa Blink yang terbuka, klik "Muat" dan deteksi perubahan dalam pengoperasian papan Arduino.

Dengan mengatur penundaan(500) - LED “L” akan berkedip dua kali lebih sering, dengan penundaan setengah detik.

Dengan mengatur penundaan (100) - LED “L” akan menyala dan padam 10 kali lebih cepat dari pengaturan pabrik, yaitu setiap 100 milidetik.

ada masalah : saat memuat sketsa, muncul kesalahan seperti “tidak sinkron”.

Memperbaiki.

Artinya platform Arduino yang terhubung tidak dikenali oleh sistem operasi. Kembali ke pengaturan nomor port COM dan model papan yang benar di menu Arduino IDE Tools.

Dan terakhir, jika Anda membeli papan Arduino di beberapa pasar online Cina, sering kali muncul masalah saat menghubungkan papan tersebut - hanya saja tidak terdeteksi. Untuk mengatasi masalah ini, pengrajin menciptakan driver.

Pelacak panel surya buatan sendiri menggunakan Arduino