Arduinoプログラミング言語。 Arduinoプログラミング言語

必要になるだろう

  • - Arduino Unoボード
  • - uSBケーブル (USB A - USB B)、
  • - パソコン、
  • - 発光ダイオード、
  • - 抵抗器220オーム、
  • - ワイヤのペア5~10cm、
  • - ブレッドボード(ブレッドボード)がある場合。

命令

http://servuino.cc/en/main/softwareページで、オペレーティングシステム(サポートされているWindows、Mac OS X、Linux)のArduino開発水曜日をダウンロードしてください。インストールできます。 ダウンロードしたファイルには、Arduinoボード用のドライバも含まれています。

ドライバをインストールしてください。 Windowsのオプションを検討してください。 これを行うには、いつ待ってください オペレーティング・システム インストールドライバを提供します。 ごみ。 Win + Pauseを押して、デバイスマネージャを実行します。 「ポート(COM&LPT)」を探します。 "Arduino Uno(comxx)"という名前のポートが表示されます。 クリック 右クリック その上のマウスを選択し、「ドライバの更新」を選択します。 次に、ダウンロードしたばかりのドライバの場所を選択します。

開発環境は、ボードの作品を\u200b\u200b研究するための多くの例をすでに含んでいます。 「Blink」を開く例:ファイル\u003e例\u003e 01.BASICS\u003e点滅します。

あなたの料金の開発環境を指定してください。 これを行うには、[ツール]\u003e [メニュー]で[Arduino Uno]を選択します。

ARDUINOボードが割り当てられているポートを選択します。 ポートの接続方法を調べるには、デバイスマネージャを実行してポートセクション(COM&LPT)を見つけます。 ボードの名前がポートになります。 カードがリスト内にない場合は、コンピュータから試して、数秒待ってください。

ボードをコンピュータから外します。 図に示すようにスキームを収集します。 LEDの短肢は、デジタルピン13のArduinoカードを備えた抵抗を介してGND出力に接続する必要があります。 麦色を使うのが便利ですが、欠けていない場合は、ワイヤーをねじれて接続できます。
重要な注意点! デジタルピン13は既にボード上に独自の抵抗を持っています。 したがって、LEDをボードに接続するときは、外付け抵抗は使用されません。 LEDを他のArduinoの他の結論に接続するときは必ず使用してください。

これで、プログラムをボードのメモリにダウンロードできます。 ボードをコンピュータに接続し、ボードの初期化中に数秒待ってください。 「ダウンロード」ボタンをクリックすると、Arduinoブートメモリが記録されます。 Arduinoの下のプログラミングは非常に直感的であり、まったく困難ではありません。 画像を見てください - プログラムへのコメントの中で、説明が小さいです。 あなたの最初の実験に対処するのに十分です。

トピック上のビデオ

注意

Arduinoボードを使って作業するときは注意深く関係がある電子製品です。 ボードの底からは裸の導体があり、ボードを導電性表面に置いた場合は、ボードを焼き付ける機会があります。 また、濡れた手や濡れた手で板に触れないで、Rawroomの操作に避けてください。

役に立つアドバイス

ネットワークにはArduino専用の多くのサイトがあります。 読む、マスター、実験を恐れて新しいことを知らないでください!

情報源:

  • 点滅したLEDを

プログラミングを引き付ける 現代の人々特に、将来の職業を選び始めたばかりの若くて初心者の専門家。 彼らはしばしば質問の前に起きます - プログラミングの研究の中でどこに始まるのですか? プログラムする方法を学ぶことにした場合は、一般的な間違いをするべきではありません - すぐに気にしないでください 複雑なシステム そして言語(例えば、c)。 複雑すぎる言語から始めて、あなたは全体としてプログラミングに不適切な印象を与えることができます。 初心者は最も簡単なシステムで動作することをお勧めします - たとえば、Baisikでプログラムを書くことを学びます。 この言語の研究は達成するために短い時間を可能にするでしょう 良い結果。 useBASICは簡単です - この普遍的なコンパイルされた言語を持っている言語 幅広い機会プログラミングの基本を理解し、将来的なスキルを向上させるのに役立ちます。

命令

プログラミングの枠組みを研究するには、約1年に行くことができます。 手続き型およびオブジェクト指向プログラミングの機能、バイナリツリー、アレイ、リストなどの操作の原則の特徴を見つける必要があります。 基本を勉強した後にのみ、より複雑なタスクに行きます。

プログラミング言語開発サイトに参加し、ドキュメントを学びます。 プログラマーのフォーラムでは必ず通信してください、彼らは、彼らは初心者の問題のほとんどの問題に対応します。

数学

プログラムすることを学びたい場合は、数学を知る必要があります。 仕事中、この科学の基礎を知らずに解決できない多くの問題に直面する必要があります。 存在します たくさんの 数学的、システムおよび理論(フーリエシリーズ、フィボナッチ数など)。これにより、プログラミングプロセスが大幅に簡単になります。

トレーニングは終了しません

プログラミング言語の進化は依然として立っていない、彼らの開発は絶えずされています。 あなたが仕事をする予定のプログラミングエリアで多くの文献を読むようにしてください。 新たな問題を解決するための代替方法を常に検索し、それはあなたの仕事の効率を絶えず向上させるのを助けるでしょう ソフトウェアコード。 プロのプログラマーとチャットすると、彼らは常に特定の問題に対処する方法を忠告することができます。 彼らのプログラムのコードを読むこともまたあなたに大きな利益をもたらします。
すべてを念頭に置いておくことは不可能です。 プログラミング言語ディレクトリを使用してください。

プログラミングタスクは、それらがどれほど単純であっても、スキルから解決しなかった。 彼らはいつも働き出す必要があります 正しいアルゴリズム この特定の状況で効果的な行動。 最適なアルゴリズムの検索には、常用慣行とトレーニングが必要です。 小さなプログラミングタスクをより頻繁に解決するようにしてください(あなたはそれらを専門のサイトで見つけることができます)、それはあなたがこの分野であなたのスキルを徐々に捉えるのを助けるでしょう。

Arduinoは、既製のデバッグボードとプログラミングのための非常に単純な言語で、プログラムのサイズとスピードのマイクロコントローラを簡素化します。 最近、AtmelはArduinoブートローダのサポートを追加しました AVRスタジオ。つまり、少なくともC ++でも、少なくともC ++でもC ++で書かれたプログラムプログラマが書かれていないプログラムプログラマなしでダウンロードを書くことができます。 また、AVR Studioの処理/配線言語でコードを書くことができます。
最後にアップデートで記事を読み始めることをお勧めします。
この記事では提供しています ステップバイステップの説明 AVR Studioを使用してプログラミングArduinoのためのソフトウェアをインストールすることによって。 基本として、Easyelectronics.ruからのAVR Studio Extensionsの概要を説明しました。 私達が私達の理事会で走るすべての例。

Arduino IDEのインストール

Arduino 1.5.2のバージョンを使用します。 公式ウェブサイトでダウンロードできます。 何らかの理由で最新バージョン(記事を書く際の1.6.2-R2)はATmega8マイクロコントローラでは機能しません。
ZIPアーカイブを既に展開されている媒体でダウンロードします。 プログラムを使用してディレクトリで解凍するだけで済みます。

Atmel Studioのインストール

UPD。

私はトピックを楽しんでいるのを見ています、そして私は数瞬間を明確にしたいです。
私がCでArduino対応の料金をプログラムしようとした3つの方法があります:

  1. ARDUINO IDEに直接書き込むC.処理/配線は言語ではなく、単なるマクロやライブラリのセットであることを理解する必要があります。 あなたがそれを書いているとき、彼は彼の見出しの中で見え、あなたの簡単なコードをCの人に変換し、標準のAVR GCCコンパイラをコンパイルします。 あなたがcにコードを書いたならば、それは彼のlibesに変わりません、そしてすぐに必要に応じてすべてをコンパイルするでしょう、しかし!...リンカはあなたのプロジェクトに追加されます 利点は、Arduino IDEを必要としないことを除くことです。 開発者から隠されている魔法の欠如。 この方法は、自分の言語でのイタリア語の友人が提供されていない機能を実装する必要がある場合によく使用されます。
  2. この記事で提案された方法(実際には最も奇妙な、すべての欠陥を組み合わせる)。 イデオロジー的には、この拡張は処理/配線をプログラムし、Atmel Studioインターフェースとして使用するために必要です。 コードを行使することを可能にする支払い機能がまだありますが、それを試していませんでした。 したがって、プログラミング中は、すべてが初めて同じですが、他のIDEで動作します。 同時に、結果の観点から同じになります。 あなたがArduinoをプログラムしたなら、そしてCでそれをすることにした場合は、Arduino IDEで大胆に書いてください。 インターフェイスが好きではない場合は、通常のエディタを使用できます(推薦、サブライトテキスト)。 Atnel Studioで作業し、そのインタフェースからボードを正しくフラッシュしたい場合、または処理/配線(突然!)で書き込んで、このaddonchikはあなたのために。 ちなみに、スタジオはWindowsの下でのみ機能します。つまり、この方法は皆のためにすぐにはありません。 私は自分自身のための新しい方法を見つけたので私はこの記事を書きましたが、それは好きではありません。
  3. 第3の方法は、それが私に上級ユーザーに最適なようです。 まず、いつものように起こります - あなたはコードを書く、コンパイルして16進ファイルを取得します。 それから、あなたの手にブートローダを持つ通常のデバッグボードがあることを覚えておいて、このブートローダーに連絡してコードをメモリに連絡して渡すことであるユーティリティーをダウンロードしてください。 ステップバイステップの指示により、すでにステップアウトしました。 この場合、開発者はすべての機能に最大限の制御を受けますが、サードパーティのブートローダの使用により問題が発生する可能性があります。

私はArduinoで起こるもう一瞬を明らかにしたいです。 あなたがしないように、Arduino IDEは間違いなく周辺自体をオンにします。 たとえば、タイマーを起動します。 そして、あなたがcでそれらを扱いたいのなら、あなたは彼らが期待どおりに働くことを見つけることができます。 そしてこれは本当の問題になる可能性があります。 そして、そのような例はたくさんあります、つまり多くの潜在的なレイク、松葉杖、そしてバグです。
HEXファイルを注ぐだけな場合は、ブートローダのために問題が発生する可能性があります。 1つだけを見つけたが、ブートローダを完了した後、UARTは残ります。 あなたがArduino IDEを介して書き込んだ場合、それはあなたのコードに挿入し、誰が他に何を知っています。 あなたがちょうどあなたの16進を走らせたいのなら、あなたはUARTの足を制御することはできません。 プロジェクトにUARTシャットダウンを追加する必要があります。 詳細このアーティファクトおよびコード例は、次のように説明されています。
まとめて、そして結論として。 ほとんどのArduino互換回路には、ISPプログラマ用のコネクタがあります。 このプログラマーを中国人から3-4ドルで購入すれば、あなたはすぐにこれらすべての問題について忘れます。

私たちのリソースをサポートし、私たちの商品ストアを訪問してもとても幸せになります。

この記事では、収集した完全な完全なものを解決しました ステップバイステップガイド 初心者Arduino。 Arduinoは、ダウンロードする場所の学習を開始する必要があることと、プログラミング環境のインストールと設定方法、およびプログラミング言語の使用方法、およびそれほど多くのプログラミング言語の使用方法、およびそれほど多くのフルメイド複雑なデバイスを作成する必要があるということを分析します。これらのマイクロコントローラの家族について。

ここで私はあなたがArduinoと働くことの原則を理解するためにあなたが理解することのために最低限の最小値を与えようとします。 プログラマブルマイクロコントローラの世界でより完全な没入のために、このサイトの他のセクションや記事に注意を払ってください。 いくつかの側面のより詳細な研究のために、私はこのサイトの他の材料への参照を残します。

Arduinoとは何ですか?

Arduinoは、任意の人がさまざまな電気機械装置を作成できるようにする電子デザイナーです。 Arduinoはソフトウェアとハ\u200b\u200bードウェアで構成されています。 ソフトウェア 開発環境(ファームウェアを書くとデバッグするためのプログラム)、多くの既製の、便利なライブラリ、簡素化されたプログラミング言語が含まれています。 ハードウェアには、それらのための大規模なマイクロコントローラと既製のモジュールが含まれています。 これのおかげで、Arduinoとの作業はとても簡単です!

Arduinoの助けを借りて、プログラミング、電気工学、および力学を勉強することができます。 しかし、これは単なるトレーニングデザイナーではありません。 あなたは本当にできることをすることができます 便利な機器.
シンプルな点滅、気象ステーション、オートメーションシステム、およびシステムで終わる スマートホーム、CNC機械および無人航空機。 実装のための膨大な数の説明やアイデアがあるので、機会はあなたのファンタジーに限られません。

Arduino Setを起動します

Arduinoの学習を開始するためには、マイクロコントローラと追加の詳細を取得する必要があります。 開始セットArduinoを購入するのが最善ですが、あなたが自分自身が必要なものすべてを選ぶことができます。 私はあなたにセットを選ぶことをお勧めします。 これが最適なセットへのリンク、そして間違いなくあなたを探求するためにあなたに使うのは別の詳細にリンクされています:

ベーシックセットARDUIOは初心者です。購入
学習のための大きなセットと最初のプロジェクト:購入
追加のセンサーとモジュールのセット:購入
Arduino Uno基本と便利なモデル:購入
便利なトレーニングとプロトタイピングのためのセクレティアダンピング料金:購入
便利なコネクター付きのワイヤーのセット:購入
LEDのセット:購入
抵抗のセット:購入
ボタン:購入
ポテンショメータ:購入

Arduino IDE開発環境

ファームウェアを書く、デバッグ、ダウンロードするには、Arduino IDEをダウンロードしてインストールする必要があります。 とてもシンプルです 便利なプログラム。 私のサイトでは、開発環境のダウンロード、インストール、設定のプロセスをすでに説明しました。 したがって、ここで私はリンクを残します 最後のバージョン プログラムとON

バージョン ウィンドウズ Mac OS X. Linux。
1.8.2

Arduinoプログラミング言語

手にマイクロコントローラボードがあると、コンピュータにコンピュータがインストールされている場合は、最初のスケッチ(ファームウェア)を書くことができます。 これを行うには、プログラミング言語に慣れる必要があります。

Arduinoプログラミングは、事前定義された関数を持つC ++言語の単純化されたバージョンを使用します。 他のCと様のプログラミング言語のように、コード書き込みルールがいくつかあります。 これが最も基本的なものです。

  • 各命令の後は、セミコロン(;)でポイントを入力する必要があります。
  • 関数を宣言する前に、関数が値を返さない場合は、関数またはvoidによって返されるデータ型を指定する必要があります。
  • 変数を宣言する前にデータの種類を指定することもできます。
  • コメントが示されています://桁および/ *ブロック* /

この情報を暗記して記憶する必要がないページ上のデータ型、機能、変数、演算子、および言語構造についてもっと知ることができます。 常にディレクトリに移動して、特定の関数の構文を参照してください。

Arduino用のすべてのファームウェアには、最低2つの機能が含まれている必要があります。 これはsetup()とloop()です。

セットアップ機能

すべてがうまくいったため、スケッチを書く必要があります。 ボタンを押した後、そして次のガスのプレスの後にLEDが点灯するようにしましょう。 これが私たちの最初のスケッチです:

//接続されたデバイスのピンが付いている変数INT SWITCHPIN \u003d 8。 int ledpin \u003d 11; //ボタンのステータスとBoolean LastButton \u003d Low LEDを格納するための変数。 Boolean CurrentButton \u003d Low。 ブールledon \u003d false; void setup(pinmode(switchpin、入力); PINMODE(LEDPIN、出力);)// Bolean Deboundse(Boolean Last)を抑制するための機能(Boolean Current \u003d DigitalRead(SwitchPin);(LAST!\u003d current)(遅延(5); current \u003d DigitalRead(SwitchPin);)戻り電流;)void loop()(LastButton \u003d\u003d Low && CurrentButton \u003d\u003d High)(LEDON \u003d!LED;)LastButton \u003d CurrentButton; DigitalWrite(LedPin 、Ledon);)

//ピン接続機器付き変数

int switchpin \u003d 8。

int ledpin \u003d 11;

//ボタンとLEDのステータスを格納するための変数

boolean LastButton \u003d Low。

boolean CurrentButton \u003d Low。

ブールledon \u003d false;

void setup()

pinMode(スイッチピン、入力);

ピンモード(LEDPIN、出力)。

//破砕抑制のための機能

boolean Debounse(Boolean Last)(

ブール値\u003d DigitalRead(スイッチピン);

if(last!\u003d current)(

遅延(5);

current \u003d DigitalRead(スイッチピン);

電流を返す。

void loop()()

currentButton \u003d Debounse(LastButton);

if(LastButton \u003d\u003d low && currentton \u003d\u003dハイ)(

ledon \u003d! 元帳;

lastButton \u003d CurrentButton;

digitalWrite(Ledpin、Ledon);

このスケッチでは、連絡先のレクリエーションを抑えるための追加のデバウス関数を作成しました。 連絡先のガラガラが私の場所にあります。 必ずこの資料に知らせてください。

シムアルドイーノ。

緯度およびパルス変調(PWM)は、信号ウェルによる電圧制御プロセスです。 つまり、PWMを使用すると、負荷を円滑に制御できます。 たとえば、LEDの明るさをスムーズに変更することができますが、この明るさの変化は電圧を下げるだけでなく、低信号間隔を増やすことによって得られます。 PWM動作原理をこの方式に示します。

LEDにPWMを提供すると、すぐに燃焼して外出し始めます。 周波数が高すぎるので、人間の目はそれを見ることができません。 しかし、ビデオを撮影するときは、LEDが燃えないときに瞬間を見るでしょう。 これは、カメラのフレームレートがPWM周波数によって乗算されていないとします。

Arduinoにはパルス変調器が内蔵されています。 マイクロコントローラでサポートされているパインズでのみPWMを使用できます。 たとえば、Arduino UnoとNanoは6 PWMの結論を持っています。これらはピンD3、D5、D6、D9、D10、D11です。 他のボードでは、ピナが異なる場合があります。 あなたに興味のある料金の説明を見つけることができます

ARDUINOでPWMを使用する機能がありますが、引数としてパイン番号と0から255までのPWM値を取ります.0は、ハイ信号で0%の塗りつぶし、255は100%です。 たとえば簡単なスケッチを書かせてください。 LEDがスムーズに点灯し、1秒間待っていて、または無期限に引き上げられたようにします。 これがこの機能を使用する例です。

// LEDは11ピンINT LEDPIN \u003d 11に接続されています。 void setup()(PINMODE(LEDPIN、出力);)void Loop()(for(int i \u003d 0; i< 255; i++) { analogWrite(ledPin, i); delay(5); } delay(1000); for (int i = 255; i > 0; i - )(analabwrite(ledpin、i);遅延(5);)

// 11松に接続されています

int ledpin \u003d 11;

void setup()

ピンモード(LEDPIN、出力)。

void loop()()

の場合(int i \u003d 0; I.< 255 ; i ++ ) {

アナログライト(LEDPIN、I);

遅延(5);

遅延(1000);

(int i \u003d 255; i\u003e 0; i - )の場合

Ardublockは、初心者向けに設計されたArduinoのグラフィックプログラミング言語です。 この環境は非常に使いやすく、インストールが簡単ですが、ロシア語にほぼ完全に翻訳されています。 ブロックに似た視覚的に構築されたプログラム...

割り込みは、異なるイベントが発生したときに外部デバイスがコントローラと対話することを可能にする非常に重要なARDUIOメカニズムです。 ハードウェア割り込みハンドラをスケッチに取り付けることで、ボタンのオン/オフ、キーボードを押すと、スイッチを切ることができます。

serial.print()およびserial.println()は、Arduinoボードからシリアルポートを介してコンピュータへの情報を転送するためのArduinoの基本機能です。 最も人気のあるArduino Uno、Mega、Nanoボード、内蔵のディスプレイはありません。

Arduinoの料金なしでArduinoプロジェクトに参加することは可能ですか? それはかなりです。 数値のおかげで オンラインサービス そして、独自の名前を持つプログラム:エミュレータまたはシミュレータArduino。 そのようなプログラムの最も人気のある代表者は...

シリアルBEGINは非常に重要なARDUIO命令です。接続をコントローラに接続できます。 外部機器。 ほとんどの場合、この「外部装置」はArduinoを接続するコンピュータであることがわかります。 したがって、シリアル開始は激しいです...

ARDUINOのグローバル変数は変数で、その範囲はプログラム全体に適用され、それはすべてのモジュールと機能で見ることができます。 この記事では、グローバル変数を使用するいくつかの例を見ます。

Arduino Arraysは、プログラマによって積極的に使用されている言語要素です。同じ種類のデータのセットを使用して作業する。 配列はArduinoの例外ではなく、すべてのプログラミング言語で、その構文は非常に似ています...

このシミュレータはChromeブラウザで最もよく機能します
慎重にアルドイノを見てみましょう。

Arduinoは、外部チェーンが接続できる大きなコンピュータではありません。 ARDUINO UNOで使用されているAtmega 328P
これはボード上の最大のチップです。 このチップはそのメモリに格納されているプログラムを実行します。 あなたはUSBを介してプログラムをダウンロードすることができます arduinoを使う IDE。 USBポート アルドイーノ電力も提供しています。

個別の電源コネクタがあります。 ボード上には5Vと3.3Vの2つの出力があります。これは電力を供給するために必要です。 様々な機器。 また、GNDとしてマークされた連絡先は、地球の結論です(地球は0B)。 Arduinoプラットフォームには、外部ノードに接続され、2つの状態が高いか(オンまたはオフ)の2つの状態がある、0から13までの数字でマークされた14のデジタル結論(ピン)もあります。 これらの連絡先は、出力としてまたは入力として機能することができます。 それらはいくつかのデータを転送し、外部デバイスを管理するか、デバイスからデータを受信することができます。 ボード上の次の結論はA0-A5を示しています。 これらは異なるセンサーからデータを受信できるアナログ入力です。 これは、温度などの特定の範囲を測定する必要があるときに特に便利です。 アナログ入力には別に使用できる追加の機能があります。

バッチ料を使う方法

キャビネットは、一時的にアイテムを接続する必要があります。
次の例はすべてバッチで組み立てられているため、ダイアグラムをすばやく変更して、はんだ付けで凍結することなく部分を再利用できます。

ダンプトラックには部品やワイヤーを挿入できる穴があります。 これらの穴のうちのいくつかは互いに電気的に接続されている。

2つの上下の行は、ボード全体に沿って行に接続されています。 これらのランクはスキームに電力を供給するために使用されます。 5Vまたは3.3Vにすることができますが、いずれにせよ、最初に行う必要があるのは、図に示すように、ダンプカードの上に5VとGNDを接続することです。 時にはこれらの行接続はボードの中央で中断されることがあります。必要に応じて、画像のように接続できます。








ボードの中央にある残りの穴は5つの穴によってグループ化されています。 それらはスキームの詳細を接続するために使用されます。


私達が私達のマイクロコントローラに接続する最初の事はLEDです。 scheme 電気的接続 写真に表示されています。

スキームに抵抗器が必要なのはなぜですか? この場合、それはLEDを通過する電流を制限します。 各LEDは特定の電流用に設計されており、この電流が大きいとLEDが失敗します。 OHM法の助けを借りて抵抗の価値があるべきかを調べるため。 知らない、または忘れていない人のために、オマの法則はそれが存在すると言います 線形中毒 電圧電流 それらは、抵抗器に張力を与えるほど、それを通って電流が流れます。
v \u003d i * R.
どこ v- 抵抗の違い
私。- 抵抗を介した電流
r- 見つけるための抵抗。
まず、抵抗器に電圧を学ばなければなりません。 あなたが使用するほとんどのLEDまたは5mmは3bの作用電圧を持ちます。 それは私たちが抵抗器5-3 \u003d 2bで返済する必要があることを意味します。

次に、抵抗を通過する電流を計算します。
20mAの電流で最も3倍と5mmのLEDが満たされています。 これ以上の電流が除外される可能性があり、現在の低い強度は害を及ぼすことなくそれらの明るさを減らすでしょう。

そのため、20mAの電流があるように、LEDを5Vチェーンに電源を入れたいです。 すべての部品は抵抗器上の1つのチェーンに含まれているので、20mAの電流でもあります。
我々が得る
2B \u003d 20 mA * R.
2B \u003d 0.02A * R.
r \u003d 100オーム

これが最低抵抗である100オームで、LEDは特性の変動を有するため、もう少し使用することをお勧めします。
この例 中古抵抗器220オーム。 著者にたくさんのそれらのものがあるという理由だけで:WINK:。

LEDをボードの中央の開口部に挿入して、長い出力が抵抗の結論の1つに接続されるように挿入します。 抵抗の2つ目は5Vに接続され、2番目のLED出力はGNDに接続されています。 LEDが点灯するはずです。

LEDの接続方法には違いがあります。 電流は長い出力から短く流れます。 図中、これは、三角形が向けられている反対側に電流が流れることを表すことができる。 LEDを回してみて、輝かないことがわかります。

しかし、抵抗をどのように接続するか、全く違いはありません。 回転するか、LEDの別の出力に接続しようとしているため、スキームの操作には影響しません。 彼はまだLEDを通して電流を制限します。

Anatomy Arduinoスケッチ。

Arduino Call Sketchのプログラム。 彼らは2つの基本機能から成ります。 関数 セットアップ。 そして機能 ループ。
この機能の内部では、すべての基本設定を指定します。 どのような結論が、どのライブラリを接続するかを入力または出力して変数を初期化します。 関数 セットアップ () プログラムが起動したときにスケッチ中に1回だけ開始されます。
後に実行される主な機能です セットアップ ()。 実際、これはプログラム自体です。 この機能は電源を切るまで無限になります。

ArduinoがLEDを点滅します



この例では、LEDダイアグラムをArduinoデジタル結論の1つに接続し、プログラムを使用してそれをオンにして無効にします。また、いくつかの便利な機能を見つけます。

この機能は内蔵されています セットアップ () プログラムの一部とあなたが入り口として使用する結論を初期化するのに役立ちます (入力) またはout (出力)。 それに応じてインストールするまで、Pinaからデータを読み書きすることはできません。 ピンモード。。 この機能には2つの引数があります。 ピン番号- これはあなたが使うピニアの数です。

モード。- ピンが機能するためです。 入力に (入力) またはout (出力)。 LEDを点火するには、信号を提出する必要があります アルドイーノ。 これを行うには、PINを終了するように設定します。
- この機能は状態を設定するために使用されます。 (状態) ピナ。 (Pinnumber)。 主な州は2つあります(一般的に3)、一つのこと 高い、パインは5V、もう1つです 低い。 そしてピニアの上には0bになります。 それは私達がLEDに接続されているピンのLEDを照らす必要があることを意味します。 高いレベル 高い.

ディレイ。 それは、プログラムの作業をMSEKで指定された期間に遅らせるのに役立ちます。
以下はLEDの点滅を引き起こすコードです。
// LED LEDPIN \u003d 7; // void setup()LED(LEDPIN、出力); // PINAのインストール)Void Loop()(DigitalWrite(LedPin、High); // LED遅延(1000); //遅延1000 MSEK(1秒)DigitalWrite(LEDPIN、LOW); //遅延LED(1000)をオフにします。// 1秒待ちます)

小コード
"//"で始まる行このコメントArduinoはそれらを無視します。
すべてのコマンドがそれらを忘れた場合はコンマポイントで終わり、エラーメッセージが表示されます。

ledpin。- これは変数です。 値を格納するためのプログラムでは変数が使用されます。 この例では、変数 ledpin。 7に割り当て、これはPina Arduinoの数です。 プログラム内のArduinoが変数を持つ文字列を満たすとき ledpin。 彼は私たちが先に示された値を使います。
とても録音します ピンモード(LEDPIN、出力) 同様のエントリ pinMode(7、出力).
しかし最初のケースでは、変数を変更するのに十分で、使用されている各行、および2番目のケースで変化し、変数を変更するには、各チームで変更を加える必要があります。

1行目は変数の種類を示します。 Arduinoをプログラムするときは、常に変数の種類を宣言することが重要です。 あなたがそれを知るのに十分なのですが int。 マイナスと正の数を発表してください。
以下はスケッチのシミュレーションです。 スキームの操作を表示するには、[開始]をクリックします。

予想どおり、LEDが消え、1秒間点灯します。 それがどのように機能するかを見るために遅延を変更してみてください。

複数のLEDを制御します。

この例では、複数のLEDを管理する方法を学びます。 これを行うには、下図のように、ボード上に別の3つのLEDを設定し、それらを抵抗とArduinoの出力に接続します。

LEDを有効にして無効にするには。これに似たプログラムを書く必要があります。
//マルチLED点滅int LED1PIN \u003d 4。 INT LED2PIN \u003d 5。 INT LED3PIN \u003d 6。 INT LED4PIN \u003d 7。 void setup()(// PINMODE出力としてのピンの取り付け(LED1PIN、出力); PINMODE(LED2PIN、出力); PINMODE(LED3PIN、出力); PINMODE(LED4PIN、出力);)VOIDループ()(DigitalWrite(LED1PIN、高) ); //ようこそLED遅延(1000); // Delay 1 SEC Digitalwrite(LED1PIN、LOW); //遅延LED(1000); //遅延1秒//他の3つのLED DigitalWriteについても同じことを行う( LED2PIN、高)。// LED遅延(1000); // Delay 1 SEC DigitalWrite(LED2PIN、LOW); //遅延LED(1000); // Delay 1 SEC Digitalwrite(LED3PIN、High); //スラッシュLED遅延(1000); // Delay 1 SEC DigitalWrite(LED3PIN、LOW); //遅延LED(1000); // Delay 1 SEC Digitalwrite(LED4PIN、High); // LED遅延LED(1000); // Delay 1 Sec Digitalwrite(LED4PIN、LOW); //遅延LED(1000); //遅延1秒)

このプログラムは完全に機能しますが、これは最も合理的なソリューションではありません。 コードを変更する必要があります。 プログラムが呼び出されるデザインを適用してからプログラムが機能するために。
同じアクションを数回繰り返す必要があるときにサイクルが便利です。 上記のコードでは、線を繰り返します

DigitalWrite(LED4ピン、ハイ); 遅延(1000); DigitalWrite(LED4ピン、ロー); 遅延(1000);
添付ファイルのフルスケッチコード (ダウンロード:1187)

LEDの明るさ調整

プログラム内のLEDの明るさを変更する必要があります。 これはコマンドを使用して実行できます。 アナログライト() 。 このコマンドはすぐに、目がこのちらつきが見えないLEDをオフにします。 LEDの半分がオンになっていると、半分が消灯していると、視覚的にはその明るさの半分が輝いています。 これはパルス変調(英語のPWMまたはPWM)と呼ばれます。 PWMは、デジタルコードを使用して「アナログ」コンポーネントによって制御できるため、かなり頻繁に適用されます。 Arduinoのすべての結論がこれらの目的に適しているわけではありません。 そのような指定が描かれているのを描いた結論のみ。 ~ 「。3,5,6,9,10,11の出力の隣にそれを見るでしょう。
あなたのLEDの1つをPWMの結論の1つで接続してください(著者は結論9です)。 これでLEDの点滅を実行しますが、最初にコマンドを変更します。 digitalWrite() 上に アナログライト(). アナログライト() それは2つの引数を持っています:最初のものは出力番号、そしてPWMの2番目の値(0~255)はLEDを参照して、それがそれらの発光の明るさ、そして電気モーターの回転速度のために。 以下はLEDのさまざまな明るさのためのコード例です。
// int LEDPIN \u003d 9の明るさを変更します。//この出力に、Voidセットアップ(PINMODE(LEDPIN、出力); // PIN初期化)void Loop()(AnalogWrite(LedPin、255); / // PAUSE 1 SEC DigitalWrite(LEDPIN、LOW); //遅延LED(1000)をオフにする(1000)。// 1秒のAnalogWrite(LedPin、191); // 3/4の明るさ(191/255~ \u003d 0.75)遅延(1000); // 1秒デジタルライト(LEDPIN、LOW); //遅延LED(1000)をオフにします(1000)。//一時停止1 SEC AnalogWrite( LEDPIN、127)。//輝度(127/255~ \u003d 0.5)遅延(1000); // 1秒デジタルライト(LEDPIN、LOW); //遅延LED(1000)をオフにする(1000); // 1秒AnalogWrite(LedPin、63); //明るさの4分の1(63/255~ \u003d 0.25)遅延(1000); // 1秒デジタルライト(LEDPIN、LOW); //遅延LED(1000)をオフにします。//一時停止1 S)

チーム内のPWMの価値を変更してみてください アナログライト()それが明るさにどのように影響するかを見るために。
次に、明るさをスムーズにスムーズに調整する方法を学びます。 あなたはもちろん、コードの一部を255回コピーすることができます
アナログライト(Ledpin、明るさ); 遅延(5); //短い遅延明度\u003d明るさ+ 1。
しかし、あなた自身が理解している - それは実用的ではありません。 それを使うのが最善です 循環以前に使用されました。
次の例では、255から0の明るさを短くするための2サイクルを使用します。
(int輝度\u003d 0;明るさ\u003d 0;輝度 - )(亜鉛ライト(LedPin、明るさ);遅延(5);)
遅延(5) 成長率を遅くし、明るさ5 * 256 \u003d 1280 ms \u003d 1.28秒の減少を遅くするために使用されます。)
「使用した最初の行」 輝度-「明るさの値が1だけ減少するためには、サイクルが繰り返されるたびに。サイクルは限らずに機能します。 明るさ\u003e \u003d 0。符号を変更することによって > 符号で >= 明るさ範囲で0をオンにしました。 このスケッチは以下のようにモデル化されています。 // Brightness Int Ledpin \u003d 9をスムーズに変更します。// Void Setup(PinMode(LedPin、Output); //初期化)void Loop()(//輝度をスムーズに増やす)(int Brightness \u003d 0;明るさ\u003d 0;明るさ - )(redpin、明るさ)(遅延(5);遅延(1000); //私たちは1秒//を待っています(int)輝度(255~0)明るさ\u003d 255;明るさ\u003e \u003d 0;明るさ - )(aualalwrite(ledpin、明るさ);遅延(5);)遅延\u200b\u200b(1000); // 1秒待っています))
これはあまり良くありませんが、その考えは理解できます。

RGB LEDとArduino

RGB LEDは、実際には1つのケースでは色の3つのLEDです。

明るさが異なるさまざまなLEDを含めて、色を組み合わせることができます。 明るさの階調の量が256のArduinoの場合は、可能な色が256 ^ 3 \u003d 16581375届きます。 実際、彼らは確かにそれほど少なくなるでしょう。
私たちが共通の陰極によって使用されるLED。 それら。 3つのLED全てがカソードによって建設的に1つの結論に接続されています。 この結論をGND出力に接続します。 制限的な抵抗器を通して、残りの結論はPWM結論に接続する必要があります。 著者は結論9-11を使用しました。順番に、各LEDによって別々に制御することができます。 最初のスケッチでは、各LEDを別々に有効にする方法が示されています。



// RGB LED - テスト// Connections int red \u003d 9; int green \u003d 10; int blue \u003d 11; void setup()(ピンモード(赤、出力); PINMODE(青、出力); PINMODE(緑色、出力);)void rop()(// Red LEDデジタルライト(赤、高)のオン/オフ;遅延( 500); DigitalWrite(Red、Low)遅延(500); //緑色のLED DigitalWrite(緑、高);遅延(500); DigitalWrite(緑、低)遅延(500); //有効/青いDigitalwrite LED(青、高);遅延(500); DigitalWrite(青、低);遅延(500);)

次の例では、コマンドを使用しています アナログライト() そして、LEDの異なるランダムな輝度値を得るために。 ランダムに変化するさまざまな色が表示されます。
// RGB LED - ランダムカラー// Connections int red \u003d 9; int green \u003d 10; int blue \u003d 11; void setup()(ピンモード(赤、出力);ピンモード(青、出力); PINMODE(緑、出力);)void rop()(//ランダムカラーアナログライトを選択します(赤、ランダム(256));アナログライト(青、ランダム(256);アナログライト(緑色、ランダム(256));遅延(1000); // 1秒待ちます)

ランダム(256)- 戻り値 乱数 0から255までの範囲。
添付のスケッチファイルでは、赤から緑への色の滑らかな遷移、そして青、赤、緑などが実証されます。 (ダウンロード:326)
スケッチの例は機能しますが、繰り返しコードがたくさんあります。 自分の補助機能を書くことによってコードを単純化することができます。これにより、ある色をスムーズに別の色に変更できます。
これが彼女がどのように見えるかです。 (ダウンロード:365)
部品内の関数を定義することを検討しましょう。 関数は呼び出されます フェーダー。 2つの引数を持ちます。 各引数はカンマによって区切られており、関数を決定する関数の最初の行に宣言されている型を持ちます。 void fader(int color1、int color2)。 両方の引数がASとして宣言されていることがわかります int。、それらは名前を割り当てられています カラー1 そして カラー2。 関数を決定するための条件付き変数として。 無効です。 関数が任意の値を返さないことを意味し、単にコマンドを実行します。 乗算の結果を返した関数を書く必要があった場合、次のようになります。
INT乗数(int number1、int number2)(int product \u003d number1 * number2; Return Product;)
タイプを宣言した方法に注意してください int。 代わりに戻り値のタイプとして
無効です。.
この機能の中で、あなたが以前のスケッチですでに使ったチームは、結論の数だけを交換しました カラー1 そして カラー2。。 関数は呼び出されます フェーダー。、その引数はASとして計算されます color1 \u003d赤 そして cOLOR2 \u003d緑色。。 関数を使用しているアーカイブフルスケッチで (ダウンロード:272)

ボタン

次のスケッチでは、固定なしで、通常開いている連絡先でボタンが使用されます。


つまり、ボタンが押されていない場合、現在の電流はそれを通過しないことを意味し、解放後、ボタンは元の位置に戻ります。
図中、ボタンに加えて、抵抗が使用されます。 この場合、電流を制限することはなく、ボタンを0b(GND)に "引き上げます"。 それら。 ボタンが接続されているArduino出力に押されていない間は、ローレベルがあります。 10 COMで使用されている抵抗器。


// int buttonpin \u003d 7ボタンを押す。 void setup()(PINMODE(BUTTONPIN、INPUT); // PINを入力してSERIAL.BEGIN(9600); //シリアルポートを初期化する)void loop()(IF(DigitalRead(ButtonPin)\u003d\u003d High)(// Serial.println( "Pershed")でボタンを押すと、; //碑文を表示します(serial.println( "unpedsed"); //「非圧縮」)
このスケッチでは、いくつかの新しいチームがあります。
- このコマンドは、チェックした出力を出力する高値(ハイレベル)とロー(低)を受け入れます。 PRE-in in setup()この出力は入力に設定する必要があります。
; // Buttonpinがボタンが接続されている出力番号です。
シリアルポートでは、コントローラ自体がプログラムを実行している間、Arduinoメッセージをコンピュータに送信できます。 これはプログラムをデバッグし、他のデバイスまたはアプリケーションにメッセージを送信するのに役立ちます。 シリアルポート(その他の名前UARTまたはUSART)を介してデータ転送を有効にするには、Setup()で初期化する必要があります。

serial.begin() Arduinoとコンピュータとの間のデータ転送速度が1つだけです。
スケッチは、Arduino IDE(Tools \u003e\u003e Serial Monitor)の画面にメッセージを表示するコマンドを使用します。
- 設計により、プログラムの進行状況を制御し、複数の場所でいくつかのチェックを吸うことができます。
(if)DigitalReadがハイに戻ると、モニタに「押された」という単語が表示されます。 それ以外の場合(それ以外の場合)「押された」という単語がモニターに表示されます。 これで、ボタンを押してLEDの電源を入れるようにしてください。
// LED出力を使用したボタン検出検出int buttonpin \u003d 7; int ledpin \u003d 8。 void setup()(PINMODE(BUTTONPIN、INPUT); //今度はボタンピンを入力ピンモード(LEDPIN、OUTPUT)に設定します。Serial.Begin(9600);)void loop()(IF(DigitalRead(ButtonPin)\u003d \u003d高い)(DigitalWrite(LedPin、High); serial.println( "pershed");他(Digitalwrite(LedPin、Low); serial.println( "unpeds")))

アナログ入力。

アナログレード 1つのアナログARDUINO出力からデータを読み取り、0(0B)から1023(5V)の範囲の値を表示できます。 アナログ入力の電圧が2.5Vの場合、それは印刷されます2.5 / 5 * 1023 \u003d 512
アナログレード アナログ入力番号(A0-A5)の引数は1つだけです。 次のスケッチは、ポテンショメータを備えた電圧読み取りコードを提供します。 これを行うには、交互の抵抗、極端な出力をピン5V、GNDに接続し、入力A0への平均出力を接続します。

次のコードを実行して、シリアルモニタ、値の回転に応じて、値がどのように変化しているかを調べます。
//このPotpin \u003d A0; //このピナには、VOID SETUP()ポテンショメータの中央出力が接続されています(デフォルトでは//アナログピンは入力に接続されているため、初期化はシリアルでは必要ありません。開始(9600);)ボイドループ()(intPotVal \u003d Analogread(Potpin); // POTVALは0~1023シリアル(PotVal)の間の数です。)
次のスケッチは、ボタンのテストとLEDの明るさのスケッチ制御を組み合わせたものです。 LEDはボタンから点灯し、輝きの明るさを制御することがポテンショメータになります。
// LED出力を使用したボタンの検出、および可変強度int buttonpin \u003d 7。 int ledpin \u003d 9; int potpin \u003d a0。 void setup()(PINMODE(ボタンピン、入力); PINMODE(LEDPIN、出力); Serial.Begin(9600);)void loop()(IF(DigitalRead(ButtonPin)\u003d\u003d HIGH)(//ボタンを押したINT ANALONVAL) \u003d AnaloGread(Potpin); int scaledval \u003d map(AnalogVal、0,1023,0,255);アナログライト(LEDPIN、SCALEDVAL); // POT SERIAL.PRINTLN(「押された」)で設定された強度でLEDをオンにします。) (DigitalWrite(LEDPIN、LOW); //ボタンがプリスされていない場合は、Serial.printLn( "unpeded");)

トピックを続ける:
インターネット

Windowsブートディスクを作成する最も一般的な方法の1つは、この記事で説明されている方法です。 そしてより正確に創造の中で、それは遠い世界で私たちを助けるでしょう...