» Elektronik » Arduino »Arduino untuk pemula

Arduino untuk pemula


Arduino adalah papan mikrokontroler yang anda boleh program untuk mengawal peranti luaran. Ia berinteraksi dengan dunia luar melalui sensor, motor, LED, penceramah ... dan juga Internet, menjadikannya platform yang fleksibel untuk pelbagai projek. Terdapat beberapa mikrokontroler, tetapi Arduino popular kerana fakta bahawa pelbagai projek sangat aktif dibentangkan dan dibincangkan di Internet. Jika anda mencari di google atau youtube, anda akan mendapati berjuta-juta idea dan maklumat untuk mula menjelajah Arduino sendiri.
Walaupun anda tidak mempunyai pengaturcaraan microcontrollers pengalaman - dengan Arduino anda akan dengan cepat belajar dan mempelajari sesuatu elektronik menggunakan eksperimen.

Apa yang anda perlukan untuk memulakan?
Arduino Uno- 1pc
Kabel usb-1pcs
Jumper 1pc
Papan pengembangan 1pcs
Merah LED 4 pcs
220 ohm perintang 4pcs
Resistor 10 bilik 1 pc
Butang tanpa menetapkan
Potentiometer
RGB LED dengan katod biasa

Semua ini boleh dibeli di kedai radio tempatan atau diarahkan di Internet.

Satu simulator dalam talian digunakan untuk menunjukkan dan mensimulasikan litar elektrik.

Simulator ini berfungsi paling baik dalam penyemak imbas Chrome.
Mari kita lihat lebih dekat pada Arduino.

Arduino bukanlah komputer yang besar untuk litar luaran boleh disambungkan. Arduino Uno menggunakan Atmega 328P
Ini cip terbesar di papan. Cip ini menjalankan program yang disimpan dalam ingatannya. Anda boleh memuat turun program melalui usb menggunakan Arduino IDE. Port usb juga menyediakan kuasa kepada arduino.

Terdapat penyambung kuasa yang berasingan. Terdapat dua output di papan, berlabel 5v dan 3.3v, yang diperlukan untuk menggerakkan pelbagai peranti. Anda juga akan mendapati pin ditandakan sebagai GND, ini adalah petunjuk tanah (tanah adalah 0V). Platform Arduino juga mempunyai 14 output digital (pin), ditandai dengan angka dari 0 hingga 13, yang disambungkan ke nod luar dan mempunyai dua keadaan, tinggi atau rendah (pada atau off). Hubungan ini boleh berfungsi sebagai output atau sebagai input, iaitu. mereka boleh menghantar beberapa data dan mengawal peranti luaran, atau menerima data dari peranti. Kesimpulan berikut di papan ditetapkan A0-A5. Ini adalah input analog yang boleh menerima data dari pelbagai sensor. Ini sangat mudah apabila anda perlu mengukur julat, seperti suhu. Input analog mempunyai fungsi tambahan yang boleh diaktifkan secara berasingan.


Bagaimana menggunakan papan roti.

Papan induk diperlukan untuk sementara menyambungkan bahagian-bahagiannya, untuk memeriksa bagaimana peranti berfungsi, sebelum anda menyolder semuanya bersama-sama.
Semua contoh berikut dikumpulkan di papan roti supaya anda dapat dengan cepat membuat perubahan pada bahagian litar dan guna semula tanpa mengganggu pematerian.

Papan roti mempunyai garis-garis lubang di mana anda boleh memasukkan bahagian-bahagian dan wayar. Sebahagian daripada lubang-lubang ini bersambung dengan elektrik antara satu sama lain.

Dua baris atas dan bawah disambungkan secara bersiri di sepanjang papan keseluruhan. Baris ini digunakan untuk menggerakkan litar. Ia boleh menjadi 5v atau 3.3v, tetapi dalam hal apapun, perkara pertama yang perlu anda lakukan ialah menyambung 5v dan GND ke papan roti, seperti yang ditunjukkan dalam gambar. Kadang-kadang sambungan baris ini boleh terganggu di tengah-tengah papan, maka jika anda perlu, anda boleh menyambungkannya, seperti ditunjukkan dalam gambar.




Lubang yang tinggal di tengah-tengah papan dikelompokkan menjadi lima lubang. Mereka digunakan untuk menyambung bahagian litar.

Perkara pertama yang kami sambungkan kepada mikrokontroler kami ialah LED. Gambar rajah sambungan elektrik ditunjukkan dalam gambar.


Mengapa saya memerlukan perintang di dalam litar? Dalam kes ini, ia menghadkan arus yang melalui LED. Setiap LED direka untuk arus tertentu, dan jika arus ini lebih besar, maka LED akan gagal. Ketahui apa nilai penghalang yang seharusnya menggunakan undang-undang Ohm. Bagi mereka yang tidak tahu atau terlupa, undang-undang Ohm mengatakan bahawa ada pergantungan linear terhadap voltan semasa. Iaitu, semakin banyak kita menerapkan voltan kepada perintang, semakin banyak arus akan mengalir melaluinya.
V = I * R
Di mana V-voltage merentas perintang
Saya- semasa melalui perintang
R- penentangan untuk dijumpai.
Pertama, kita perlu mengetahui voltan merentas perintang. Kebanyakan LED 3mm atau 5mm yang anda akan gunakan mempunyai voltan operasi 3V. Oleh itu, pada perintang kita perlu membayar 5-3 = 2v.

Kemudian kita mengira arus yang melalui perintang.
Kebanyakan 3 dan 5mm LED bersinar pada kecerahan penuh pada arus 20mA. Kini lebih daripada ini boleh menyahdayakan mereka, dan arus kekuatan yang lebih rendah akan mengurangkan kecerahan mereka, tanpa menyebabkan sebarang bahaya.

Jadi, kita mahu menghidupkan LED dalam litar 5v supaya ia mempunyai arus 20mA. Oleh kerana semua bahagian dimasukkan dalam satu litar, perintang juga akan mempunyai arus 20 mA.
Kami mendapat
2V = 20 mA * R
2V = 0.02A * R
R = 100 ohm

100 Ohms adalah rintangan minimum, lebih baik untuk menggunakan sedikit lagi, kerana LED mempunyai beberapa variasi dalam ciri-ciri.
Dalam contoh ini, satu perintang 220 ohm digunakan. Hanya kerana penulis mempunyai banyak daripada mereka: wink :.

Masukkan LED ke lubang-lubang di tengah-tengah papan supaya terminal panjangnya disambungkan ke salah satu terminal perintang. Sambung hujung kedua perintang ke 5V, dan hubungkan output kedua LED ke GND. LED perlu menyala.

Sila ambil perhatian bahawa terdapat perbezaan cara menyambungkan LED. Aliran semasa dari terminal yang lebih panjang ke yang lebih pendek. Dalam gambarajah, dapat dibayangkan bahawa arus mengalir ke arah di mana segitiga diarahkan. Cuba membalikkan LED dan anda akan melihat bahawa ia tidak akan menyala.

Tetapi bagaimana anda menyambung perintang, tidak ada perbezaan sama sekali. Anda boleh menghidupkan atau cuba menyambungkannya ke output LED yang lain, ini tidak akan menjejaskan operasi litar. Ia masih akan menghadkan semasa melalui LED.

Anatomi lakaran Arduino.

Program untuk Arduino dipanggil lakaran. Mereka terdiri daripada dua fungsi utama. Fungsi persediaan dan berfungsi gelung
dalam fungsi ini, anda akan menetapkan semua tetapan asas. Kesimpulan apa yang akan dilakukan pada input atau output, yang mana perpustakaan untuk menyambung, memulakan pembolehubah. Fungsi Persediaan () Ia hanya bermula sekali semasa lakaran, apabila program bermula.
ini adalah fungsi utama yang dilaksanakan selepas itu persediaan (). Malah, ini adalah program itu sendiri. Fungsi ini akan berjalan selama-lamanya sehingga anda mematikan kuasa.

Arduino berkelip LED




Dalam contoh ini, kami akan menyambungkan litar dengan LED ke salah satu pin digital Arduino dan menghidupkan dan mematikannya dengan menggunakan program ini, dan anda juga akan mempelajari beberapa fungsi yang berguna.



- fungsi ini digunakan dalam persediaan () bahagian program dan berfungsi untuk memulakan kesimpulan yang akan anda gunakan sebagai input (INPUT) atau keluar (OUTPUT). Anda tidak boleh membaca atau menulis data dari pin sehingga anda menetapkannya dengan sewajarnya pinMode. Fungsi ini mempunyai dua hujah: pinNumber- Ini adalah nombor pin yang akan anda gunakan.

Mod- menetapkan bagaimana pin akan berfungsi. Di pintu masuk (INPUT) atau keluar (OUTPUT). Untuk menyalakan lampu LED kita mesti memberi isyarat Dari Arduino Untuk melakukan ini, kami mengkonfigurasi pin untuk keluar.
- fungsi ini berfungsi untuk menetapkan keadaan (negeri) pina (pinNumber). Terdapat dua negeri utama (secara amnya terdapat 3), satu adalah Tinggi, pin akan menjadi 5v, yang lain pula Rendah dan pin akan menjadi 0v. Jadi, untuk menyalakan LED, kita perlu menetapkan tahap tinggi pada pin yang disambungkan ke LED Tinggi.

- kelewatan. Berkhidmat untuk menunda program untuk tempoh tertentu dalam ms.
Di bawah adalah kod yang menyebabkan LED berkelip.
// LED Blink

int ledPin = 7; // Arduino pin yang mana LED disambungkan

void setup () {
  pinMode (ledPin, OUTPUT); // tetapkan pin sebagai EXIT
}

kekosongan gelung () {
  digitalWrite (ledPin, TINGGI); // menyala LED
  kelewatan (1000); // kelewatan 1000 ms (1 saat)
  digitalWrite (ledPin, LOW); // Matikan LED
  kelewatan (1000); // tunggu 1 saat
}


Penjelasan sedikit pada kod.
Talian yang bermula dengan "//" adalah komen oleh Arduino yang mengabaikannya.
Semua perintah berakhir dengan koma bertitik; jika anda melupakannya, anda akan menerima mesej ralat.

ledpinadalah pembolehubah. Pembolehubah digunakan dalam program untuk menyimpan nilai. Dalam contoh ini, pembolehubah ledpin memberikan nilai 7, ini nombor pin Arduino. Apabila Arduino dalam program itu menemui rentetan dengan pembolehubah ledpin , ia akan menggunakan nilai yang kami nyatakan sebelum ini.
Jadi rekod pinMode (ledPin, OUTPUT) sama seperti rekod pinMode (7, OUTPUT).
Tetapi dalam kes pertama, cukup untuk mengubah pembolehubah dan ia akan berubah dalam setiap baris di mana ia digunakan, dan dalam kes kedua, untuk mengubah pemboleh ubah, anda perlu membuat perubahan dalam pen pada setiap arahan.

dalam baris pertama menunjukkan jenis pembolehubah. Apabila pengaturcaraan Arduino, adalah penting untuk selalu mengisytiharkan jenis pembolehubah. Buat masa ini, cukup untuk anda tahu INT mengumumkan nombor negatif dan positif.
Berikut dibentangkan pemodelan lakaran. Tekan mula untuk melihat operasi litar.



Seperti yang dijangkakan, LED dimatikan dan menyala selepas satu saat. Cuba tukar kelewatan untuk melihat bagaimana ia berfungsi.

Pengurusan beberapa LED.

Dalam contoh ini, anda akan belajar bagaimana untuk mengawal pelbagai LED. Untuk melakukan ini, memasang 3 lagi LED di papan dan sambungkannya ke Arduino resistor dan pin, seperti ditunjukkan di bawah.



Untuk menghidupkan dan mematikan LED pula, anda perlu menulis program seperti ini:
// Multi LED Blink

int led1Pin = 4;
int led2Pin = 5;
int led3Pin = 6;
int led4Pin = 7;

void setup () {
  // // pin sebagai EXIT
  pinMode (led1Pin, OUTPUT);
  pinMode (led2Pin, OUTPUT);
  pinMode (led3Pin, OUTPUT);
  pinMode (led4Pin, OUTPUT);
}

kekosongan gelung () {
  digitalWrite (led1Pin, HIGH); // light the LED
  kelewatan (1000); // delay 1 sec
  digitalWrite (led1Pin, LOW); // mengeluarkan LED
  kelewatan (1000); // delay 1 sec

  // lakukan yang sama untuk 3 LED yang lain
  digitalWrite (led2Pin, HIGH); // light the LED
  kelewatan (1000); // delay 1 sec
  digitalWrite (led2Pin, LOW); // mengeluarkan LED
  kelewatan (1000); // delay 1 sec

  digitalWrite (led3Pin, HIGH); // light the LED
  kelewatan (1000); // delay 1 sec
  digitalWrite (led3Pin, LOW); // mengeluarkan LED
  kelewatan (1000); // delay 1 sec

  digitalWrite (led4Pin, TINGGI); // menyala LED
  kelewatan (1000); // delay 1 sec
  digitalWrite (led4Pin, LOW); // mengeluarkan LED
  kelewatan (1000); // delay 1 sec
}


Program ini akan berfungsi dengan baik, tetapi ini bukan penyelesaian yang paling rasional. Kod perlu diubah. Agar program ini berfungsi lagi dan lagi, kami akan menggunakan pembinaan yang dipanggil.
Siklus mudah apabila anda perlu mengulangi tindakan yang sama beberapa kali. Dalam kod di atas, kita ulangi baris

digitalWrite (led4Pin, TINGGI);
kelewatan (1000);
digitalWrite (led4Pin, LOW);
kelewatan (1000); 

kod lakaran penuh dalam lampiran for.zip [720 b] (muat turun: 1410)

Pelarasan kecerahan LED

Kadang-kadang anda perlu mengubah kecerahan LED dalam program ini. Ini boleh dilakukan dengan menggunakan arahan ini analogWrite (). Perintah ini menghidupkan dan mematikan LED dengan cepat sehingga mata tidak melihat kelipan ini. Jika LED dihidupkan separuh masa dan separuh, ia akan kelihatan secara visual bahawa ia menyala pada separuh kecerahannya. Ini dipanggil modulasi lebar pulsa (PWM atau PWM dalam bahasa Inggeris). PWM digunakan agak kerap, kerana ia boleh digunakan untuk mengawal komponen "analog" menggunakan kod digital. Tidak semua pin Arduino sesuai untuk tujuan ini. Hanya kesimpulan-kesimpulan di mana penunjukan itu ditarik "~"Anda akan melihatnya di sebelah pin 3,5,6,9,10,11.
Sambungkan salah satu LED anda ke salah satu output PWM (untuk pengarang, ini pin 9). Sekarang jalankan lakaran berkelip LED, tetapi mula-mula mengubah arahan digitalWrite () pada analogWrite (). analogWrite () Ia mempunyai dua hujah: yang pertama ialah nombor pin, dan yang kedua adalah nilai PWM (0-255), berhubung dengan LED ia akan menjadi kecerahan mereka, dan untuk motor elektrik kelajuan putaran. Berikut ialah kod contoh untuk kecerahan LED yang berlainan.
/ / Ubah kecerahan LED

int ledPin = 9; // LED disambungkan ke pin ini
void setup () {
  pinMode (ledPin, OUTPUT); // memulakan pin ke output
}

kekosongan gelung () {
  analogWrite (ledPin, 255); // kecerahan penuh (255/255 = 1)
  kelewatan (1000); // jeda 1 saat
  digitalWrite (ledPin, LOW); // matikan LED
  kelewatan (1000); // jeda 1 saat

  analogWrite (ledPin, 191); // kecerahan pada 3/4 (191/255 ~ = 0.75)
  kelewatan (1000); // jeda 1 saat
  digitalWrite (ledPin, LOW); // matikan LED
  kelewatan (1000); // jeda 1 saat

  analogWrite (ledPin, 127); // setengah kecerahan (127/255 ~ = 0.5)
  kelewatan (1000); // jeda 1 saat
  digitalWrite (ledPin, LOW); // matikan LED
  kelewatan (1000); // jeda 1 saat

  analogWrite (ledPin, 63); // kecerahan suku (63/255 ~ = 0.25)
  kelewatan (1000); // jeda 1 saat
  digitalWrite (ledPin, LOW); // matikan LED
  kelewatan (1000); // jeda 1 saat
}


Cuba ubah nilai PWM dalam arahan analogWrite ()untuk melihat bagaimana ia memberi kesan kecerahan.
Seterusnya, anda akan belajar bagaimana untuk menyesuaikan kecerahan dengan lancar dari penuh kepada sifar. Anda boleh, tentu saja, menyalin sekeping kod 255 kali
analogWrite (ledPin, kecerahan);
kelewatan (5); // kelewatan pendek
kecerahan = kecerahan + 1;

Tetapi, anda faham - ia tidak akan praktikal. Untuk melakukan ini, sebaiknya gunakan gelung FOR yang digunakan sebelum ini.
Contoh berikut menggunakan dua kitaran, satu untuk mengurangkan kecerahan dari 255 hingga 0
untuk (int kecerahan = 0; kecerahan = 0; kecerahan -) {

analogWrite (ledPin, kecerahan);
kelewatan (5);

}

kelewatan (5) digunakan untuk melambatkan kadar kenaikan dan kejatuhan kecerahan 5 * 256 = 1280 ms = 1.28 detik.)
Baris pertama menggunakan "kecerahan-"supaya nilai kecerahan berkurang sebanyak 1, setiap kali kitaran berulang. Sila ambil perhatian bahawa kitaran akan berfungsi selagi kecerahan> = 0Menggantikan tanda > pada tanda itu >= kami memasukkan 0 dalam julat kecerahan. Lakaran ini dimodelkan di bawah.
/ / lancar mengubah kecerahan

int ledPin = 9; // LED disambungkan ke pin ini

void setup () {
  pinMode (ledPin, OUTPUT); // memulakan pin untuk keluar
}

kekosongan gelung () {
  // secara beransur-ansur meningkatkan kecerahan (0 hingga 255)
  untuk (int kecerahan = 0; kecerahan = 0; kecerahan -) {
    analogWrite (ledPin, kecerahan);
    kelewatan (5);
  }

  kelewatan (1000); // tunggu 1 saat
 / / lancar mengurangkan kecerahan (255 hingga 0)
  untuk (int kecerahan = 255; kecerahan> = 0; kecerahan -) {
    analogWrite (ledPin, kecerahan);
    kelewatan (5);
  }

  kelewatan (1000); // tunggu 1 saat
}
}

Ini tidak kelihatan, tetapi idea itu jelas.



RGB LED dan Arduino

LED RGB sebenarnya tiga LED warna yang berbeza dalam satu perumahan.



Termasuk LED yang berlainan dengan kecerahan yang berbeza, anda boleh menggabungkan dan mendapatkan warna yang berbeza. Untuk Arduino, di mana bilangan pengelas kecerahan adalah 256, anda dapat 256 ^ 3 = 16581375 warna yang mungkin. Pada hakikatnya, tentu saja, akan ada lebih sedikit daripada mereka.
LED yang akan kita gunakan adalah katod biasa. I.e. ketiga-tiga LED bersambung secara struktural oleh katod ke satu terminal. Kami akan menyambungkan pin ini kepada pin GND. Terminal selebihnya, melalui perintang yang terhad, mesti disambungkan ke terminal PWM. Penulis menggunakan kesimpulan 9-11. Oleh itu, adalah mungkin untuk mengawal setiap LED secara berasingan. Lakaran pertama menunjukkan cara menghidupkan setiap LED secara berasingan.



// RGB LED - ujian

// sambungan pin
int merah = 9;
int hijau = 10;
int biru = 11;

void setup () {
  pinMode (merah, OUTPUT);
  pinMode (biru, OUTPUT);
  pinMode (hijau, OUTPUT);
}

kekosongan gelung () {
  / // hidupkan / matikan LED merah
  digitalWrite (merah, TINGGI);
  kelewatan (500);
  digitalWrite (merah, LOW);
  kelewatan (500);
  
  // hidupkan / matikan LED hijau
  digitalWrite (hijau, TINGGI);
  kelewatan (500);
  digitalWrite (hijau, rendah);
  kelewatan (500);

  // hidupkan / matikan LED biru
  digitalWrite (biru, TINGGI);
  kelewatan (500);
  digitalWrite (biru, LOW);
  kelewatan (500);
}


Contoh berikut menggunakan arahan analogWrite () dan untuk mendapatkan pelbagai nilai kecerahan rawak untuk LED. Anda akan melihat warna yang berbeza berubah secara rawak.
// RGB LED - warna rawak

// sambungan pin
int merah = 9;
int hijau = 10;
int biru = 11;
void setup () {
  pinMode (merah, OUTPUT);
  pinMode (biru, OUTPUT);
  pinMode (hijau, OUTPUT);
}
kekosongan gelung () {
  // pilih warna rawak
  analogWrite (merah, rawak (256));
  analogWrite (biru, rawak (256));
  analogWrite (hijau, rawak (256));
  kelewatan (1000); // tunggu satu saat
}


Rawak (256)-Membeli nombor rawak dalam julat dari 0 hingga 255.
Di dalam fail yang dilampirkan terdapat lakaran yang menunjukkan peralihan warna yang lancar dari merah ke hijau, kemudian ke biru, merah, hijau, dll. transitions.zip [373 b] (muat turun: 386)
Contoh lakaran berfungsi, tetapi terdapat banyak salinan pendua. Anda boleh menyederhanakan kod itu dengan menulis fungsi penolong anda sendiri, yang dengan lancar akan mengubah satu warna kepada yang lain.
Inilah yang akan kelihatan seperti: function.zip [263 b] (muat turun: 420)
Mari lihat definisi fungsi dalam bahagian. Fungsi dipanggil fader dan mempunyai dua hujah. Setiap argumen dipisahkan oleh koma dan mempunyai jenis yang diisytiharkan dalam baris pertama definisi fungsi: void fader (int color1, int color2). Anda melihat bahawa kedua-dua hujah diisytiharkan sebagai int, dan mereka diberi nama color1 dan color2 sebagai pemboleh ubah bersyarat untuk menentukan fungsi. Tidak sah bermakna bahawa fungsi itu tidak mengembalikan sebarang nilai, ia hanya melaksanakan arahan. Jika perlu menulis fungsi yang memulangkan hasil pendaraban, ia akan kelihatan seperti ini:
multiplier int (int number1, int number2) {

int product = number1 * number2;
pulangan produk;

} 

Perhatikan bagaimana kami mengisytiharkan Jenis int sebagai jenis pulangan sebaliknya
tidak sah.
Di dalam fungsi terdapat arahan yang telah anda gunakan dalam lakaran sebelum ini, hanya nombor pin yang digantikan oleh color1 dan color2. Fungsi dipanggil fader, hujahnya dikira sebagai color1 = merah dan color2 = green. Arahan lakaran penuh menggunakan fungsi functions.zip [392 b] (muat turun: 320)

Butang

Dalam lakaran seterusnya, butang dengan kenalan yang biasanya terbuka akan digunakan, tanpa menetapkan.

Arduino untuk pemula

Ini bermakna bahawa walaupun butang tidak ditekan, arus tidak mengalir melaluinya, dan selepas dibebaskan, butang itu kembali ke kedudukan asalnya.
Dalam litar, sebagai tambahan kepada butang, satu perintang digunakan. Dalam kes ini, ia tidak menghadkan semasa, tetapi "menarik" butang ke 0v (GND). I.e. sehingga butang ditekan pada pin Arduino yang mana ia disambungkan, tahap akan menjadi rendah. Perintang yang digunakan dalam litar 10 kΩ.

// tentukan butang klik
int buttonPin = 7;
void setup () {
  pinMode (buttonPin, INPUT); // memulakan pin input
  Serial.begin (9600); // memulakan port siri
}
kekosongan gelung () {
  jika (digitalRead (buttonPin) == HIGH) {// jika butang ditekan
    Serial.println ("ditekan"); // cetak "ditekan"
  } else {
    Serial.println ("unpressed"); // otherwise "unpressed"
  }
}

Terdapat beberapa pasukan baru dalam lakaran ini.
-Perintah ini mengambil nilai Tinggi (tahap tinggi) dan rendah (tahap rendah) dari output yang kita periksa. Sebelum ini, dalam persediaan (), output ini mesti dikonfigurasikan untuk input.
; // Where buttonPin adalah nombor pin di mana butang disambungkan.
Port siri membolehkan anda menghantar mesej Arduino ke komputer, sementara pengawal itu sendiri menjalankan program tersebut. Ini berguna untuk debug program, menghantar mesej ke peranti atau aplikasi lain. Untuk membolehkan pemindahan data melalui port bersiri (juga dikenali sebagai UART atau USART), anda mesti memulakannya dalam persediaan ()

Serial.begin () hanya mempunyai satu hujah adalah kadar pemindahan data antara Arduino dan komputer.
lakaran, perintah digunakan untuk memaparkan mesej pada skrin dalam Arduino IDE (Peralatan >> Monitor Serial).
- Reka bentuk membolehkan anda mengawal kemajuan program dengan menggabungkan beberapa pemeriksaan di satu tempat.
Jika (jika) digitalRead pulih TINGGI, maka perkataan "ditekan" dipaparkan pada monitor. Lain (sebaliknya) perkataan "diperas" dipaparkan pada monitor. Sekarang anda boleh cuba menghidupkan dan mematikan LED pada sentuhan butang.
// pengesanan tekan butang dengan output LED
int buttonPin = 7;
int ledPin = 8;
void setup () {
  pinMode (buttonPin, INPUT); // kali ini kita akan menetapkan pin butang sebagai INPUT
  pinMode (ledPin, OUTPUT);
  Serial.begin (9600);
}
kekosongan gelung () {
  jika (digitalRead (buttonPin) == TINGGI) {
    digitalWrite (ledPin, TINGGI);
    Serial.println ("ditekan");
  } else {
    digitalWrite (ledPin, LOW);
    Serial.println ("unpressed");
  }
}


Input analog.

analogRead membolehkan anda membaca data dari salah satu pin analog Arduino dan memaparkan nilai dalam julat dari 0 (0V) hingga 1023 (5V). Sekiranya voltan pada input analog ialah 2.5V, maka 2.5 / 5 * 1023 = 512 akan dicetak
analogRead hanya mempunyai satu hujah - Ini adalah nombor input analog (A0-A5). Lakaran berikut menyediakan kod untuk membaca voltan dari potensiometer. Untuk melakukan ini, sambungkan perintang yang berubah-ubah, pin melampau kepada pin 5V dan GND, dan pin tengah untuk memasukkan A0.


Jalankan kod berikut dan lihat pada monitor bersiri bagaimana nilai berubah bergantung pada putaran tombol perintang.
// input analog

int potPin = A0; // output pusat potensiometer disambungkan ke pin ini

void setup () {
  // pin analog diaktifkan oleh input secara lalai, jadi permulaan tidak diperlukan
  Serial.begin (9600);
}

kekosongan gelung () {
  int potVal = analogRead (potPin); // potVal adalah nombor antara 0 dan 1023
  Serial.println (potVal);
}

Lakaran seterusnya menggabungkan lakaran klik butang dan lakaran kawalan kecerahan LED. LED akan menghidupkan dari butang, dan potensiometer akan mengawal kecerahan cahaya.
// butang pengesanan akhbar dengan output LED dan keamatan berubah-ubah
int buttonPin = 7;
int ledPin = 9;
int potPin = A0;
void setup () {
  pinMode (buttonPin, INPUT);
  pinMode (ledPin, OUTPUT);
  Serial.begin (9600);
}
kekosongan gelung () {
  jika (digitalRead (buttonPin) == TINGGI) {// jika butang ditekan
    int analogVal = analogRead (potPin);
    int scaledVal = peta (analogVal, 0, 1023, 0, 255);
    analogWrite (ledPin, scaledVal); // dihidupkan dengan intensiti yang ditetapkan oleh periuk
    Serial.println ("ditekan");
  } else {
    digitalWrite (ledPin, LOW); // matikan jika butang tidak ditekan
    Serial.println ("unpressed");
  }
}
8.7
9
9

Tambah komen

    • senyumtersenyumxaxaokdontknowyahoonea
      bosawalbodohyaya-yaagresifrahsia
      maaftariandance2dance3pengampunanmembantuminuman
      berhentikawan-kawanbaikgoodgoodwiseltolaklidah
      asapbertepuk tangancraymengisytiharkanderisivejangan dengarmuat turun
      panasberalunketawa1mdamesyuaratmoskingnegatif
      not_ipopcornmenghukumbacamenakutkanmenakutkancarian
      mengejekterima kasihinito_clueumnikakutbersetuju
      burukbeeeblack_eyeblum3memerahbermegahkebosanan
      ditapiskesenanganrahsia2mengancamkemenanganyusun_bespectacled
      shokrespektloldiingatiselamat datangkrutoyya_za
      ya_dobryipembantune_huliganne_othodifludlarangantutup
4 ulasan
Inilah cara ia berfungsi sebagaimana mestinya - // secara beransur-ansur meningkatkan kecerahan (0 hingga 255)
untuk (int kecerahan = 0; kecerahan <= 255; kecerahan ++) {
analogWrite (ledPin, kecerahan);
kelewatan (5);
pada kompilasi memberikan ralat Arduino: 1.6.5 (Windows 7), Lembaga "Arduino Nano, ATmega328"

sketch_sep20a: 25: error: deklarasi yang dijangka sebelum '}' token
deklarasi yang dijangka sebelum '}'
Saya menyalin lakaran peletupan yang lancar.
LED saya menyala dengan mendadak, tetapi ia berjalan lancar.

Terangkan.
Saya menyalin lakaran peletupan yang lancar.
LED saya menyala dengan mendadak, tetapi ia berjalan lancar.

Terangkan.

Kami menasihati anda untuk membaca:

Bawa ia untuk telefon pintar ...