arduino:grovebeginnerkit

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
arduino:grovebeginnerkit [2023/05/30 11:48] – [8. Temperature & Humidity Sensor] babaarduino:grovebeginnerkit [2024/05/21 11:00] (現在) – [3. OLED Display 0.96] baba
行 86: 行 86:
 </WRAP> </WRAP>
  
-<code .c countdown.pde>+<file .c countdown.pde>
 void setup() void setup()
 { {
行 97: 行 97:
   delay(1000);   delay(1000);
 } }
-</code>+</file>
  
-<code .c ring.pde>+<file .c ring.pde>
 // Reference: http://arms22.blog91.fc2.com/blog-entry-276.html // Reference: http://arms22.blog91.fc2.com/blog-entry-276.html
 void setup() void setup()
行 159: 行 159:
   delay(1500);   delay(1500);
 } }
-</code>+</file>
 ==== 音階で音を鳴らしてみる ==== ==== 音階で音を鳴らしてみる ====
 ON/OFFの感覚を狭くすることで、高い音が、広くすることで低い音がなることが確認できました。また、任意の周波数であればtone()関数を利用して簡単に音を鳴らすことができるのも確認できました。ではこれをもう少しわかりやすく、所謂ドレミファソラシド...といった音程にて再現できるようにしてみましょう。 ON/OFFの感覚を狭くすることで、高い音が、広くすることで低い音がなることが確認できました。また、任意の周波数であればtone()関数を利用して簡単に音を鳴らすことができるのも確認できました。ではこれをもう少しわかりやすく、所謂ドレミファソラシド...といった音程にて再現できるようにしてみましょう。
行 180: 行 180:
   * https://musescore.com/user/29944637/scores/5266155   * https://musescore.com/user/29944637/scores/5266155
  
-<code .c nokiatune.pde>+<file .c nokiatune.pde>
 float getFreq(int n) float getFreq(int n)
 { {
行 187: 行 187:
 void setup() void setup()
 { {
-  pinMode(6, OUTPUT);+  pinMode(5, OUTPUT);
 } }
 int interval = 250; int interval = 250;
 void loop() { void loop() {
-  tone(6, getFreq(76), interval/2);+  tone(5, getFreq(76), interval/2);
   delay(interval/2);   delay(interval/2);
-  tone(6, getFreq(74), interval/2);+  tone(5, getFreq(74), interval/2);
   delay(interval/2);   delay(interval/2);
-  tone(6, getFreq(66), interval);+  tone(5, getFreq(66), interval);
   delay(interval);   delay(interval);
-  tone(6, getFreq(68), interval);+  tone(5, getFreq(68), interval);
   delay(interval);   delay(interval);
-  tone(6,getFreq(73), interval/2);+  tone(5,getFreq(73), interval/2);
   delay(interval/2);   delay(interval/2);
-  tone(6, getFreq(71), interval/2);+  tone(5, getFreq(71), interval/2);
   delay(interval/2);   delay(interval/2);
-  tone(6, getFreq(62), interval);+  tone(5, getFreq(62), interval);
   delay(interval);   delay(interval);
-  tone(6, getFreq(64), interval);+  tone(5, getFreq(64), interval);
   delay(interval);   delay(interval);
-  tone(6, getFreq(71), interval/2);+  tone(5, getFreq(71), interval/2);
   delay(interval/2);   delay(interval/2);
-  tone(6, getFreq(69), interval/2);+  tone(5, getFreq(69), interval/2);
   delay(interval/2);   delay(interval/2);
-  tone(6, getFreq(61), interval);+  tone(5, getFreq(61), interval);
   delay(interval);   delay(interval);
-  tone(6, getFreq(64), interval);+  tone(5, getFreq(64), interval);
   delay(interval);   delay(interval);
-  tone(6, getFreq(69), interval*2);+  tone(5, getFreq(69), interval*2);
   delay(interval*4);   delay(interval*4);
   delay(interval*4);   delay(interval*4);
 } }
-</code>+</file>
 ==== 余談 ==== ==== 余談 ====
 鳴らしたいノート番号を指定することでその周波数を計算することができますが、その逆である「鳴らしたい周波数が決まっている場合、それはピアノの鍵盤でいうところのどの位置になるのか?」を計算するには、方程式をnについてとけば良いです。 鳴らしたいノート番号を指定することでその周波数を計算することができますが、その逆である「鳴らしたい周波数が決まっている場合、それはピアノの鍵盤でいうところのどの位置になるのか?」を計算するには、方程式をnについてとけば良いです。
行 230: 行 230:
 ==== 3. OLED Display 0.96 ==== ==== 3. OLED Display 0.96 ====
 Arduino Library Managerから U8g2 をインストールしてから,以下のコードを実行 Arduino Library Managerから U8g2 をインストールしてから,以下のコードを実行
-<file>+<file .c>
 #include <Arduino.h> #include <Arduino.h>
 #include <U8g2lib.h> #include <U8g2lib.h>
行 448: 行 448:
 </file> </file>
 ==== 10. 3-Axis Accelerator ==== ==== 10. 3-Axis Accelerator ====
 +grove-3-axis-digital-accelerometer-2g-to-16g を追加
 +<file>
 +//Gravity Acceleration
 +#include "LIS3DHTR.h"
 +#ifdef SOFTWAREWIRE
 +    #include <SoftwareWire.h>
 +    SoftwareWire myWire(3, 2);
 +    LIS3DHTR<SoftwareWire> LIS;       //Software I2C
 +    #define WIRE myWire
 +#else
 +    #include <Wire.h>
 +    LIS3DHTR<TwoWire> LIS;           //Hardware I2C
 +    #define WIRE Wire
 +#endif
  
 +void setup() {
 +    Serial.begin(9600);
 +    while (!Serial) {};
 +    LIS.begin(WIRE, 0x19); //IIC init
 +    delay(100);
 +    LIS.setOutputDataRate(LIS3DHTR_DATARATE_50HZ);
 +}
 +void loop() {
 +    if (!LIS) {
 +        Serial.println("LIS3DHTR didn't connect.");
 +        while (1);
 +        return;
 +    }
 +    //3 axis
 +    Serial.print("x:"); Serial.print(LIS.getAccelerationX()); Serial.print("  ");
 +    Serial.print("y:"); Serial.print(LIS.getAccelerationY()); Serial.print("  ");
 +    Serial.print("z:"); Serial.println(LIS.getAccelerationZ());
 +
 +    delay(500);
 +}
 +</file>
  
  
  • /home/users/2/lolipop.jp-4404d470cd64c603/web/ws/data/attic/arduino/grovebeginnerkit.1685414893.txt.gz
  • 最終更新: 2023/05/30 11:48
  • by baba