質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

解決済

LCD(SO1602AWWB-UC-WB-U)を使ってRTC(DS1307)を表示させる

DMR
DMR

総合スコア0

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

2回答

0評価

0クリップ

740閲覧

投稿2021/01/30 13:48

編集2022/01/12 10:58

LCD(SO1602AWWB-UC-WB-U)」を持っています。これを使ってRTC(DS1307)とシリアル通信でLCDに表示させる方法が分かりません。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

y_waiwai
y_waiwai

2021/01/30 13:59

で、しつもんはなんでしょうか
nob.
nob.

2021/01/31 04:16

秋月の説明書 https://akizukidenshi\.com/download/ds/akizuki/so1602awwb-uc-wb-u_akizuki_manu\.pdf がありますが、読んでも分からなかった、ということですか? 「説明書にはXXXと書いてあるが、YYYYが理由でそのようにならない」とかの形式で質問して下さい。 説明書を読んでないなら、読んで下さい。
DMR
DMR

2021/01/31 05:44

LCDのサンプルプログラムがこれで #include <Wire\.h> #define OLED_ADRS 0x3C //SA0=L\(SA0=H の場合は 0x3D\) int DisplayON = 0x0F, ClearDisplay = 0x01, ReturnHome = 0x02; void setup\(\) { Wire\.begin\(\); //Wire ライブラリを初期化し、I2C マスタとしてバスに接続 init_oled\(\); } void loop\(\) { char moji\[\] = "I2C OLED WHITE12345"; for\(int i = 0; i < 20; i\+\+\) { writeData\(moji\[i\]\); } writeCommand\(0x20\+0x80\); //2 行目の先頭 for\(int i = 0; i < 20; i\+\+\) { writeData\(i\+0xB1\); } contrast_max\(\); //輝度を最大に設定 while\(1\){} } //----main end---- void writeData\(byte t_data\) { Wire\.beginTransmission\(OLED_ADRS\); Wire\.write\(0x40\); Wire\.write\(t_data\); Wire\.endTransmission\(\); delay\(1\); } void writeCommand\(byte t_command\) { Wire\.beginTransmission\(OLED_ADRS\); Wire\.write\(0x00\); Wire\.write\(t_command\); Wire\.endTransmission\(\); delay\(10\); } void contrast_max\(\){ writeCommand\(0x2a\);//RE=1 writeCommand\(0x79\);//SD=1 writeCommand\(0x81\);//コントラストセット writeCommand\(0xFF\);//輝度MAX writeCommand\(0x78\);//SD を0にもどす writeCommand\(0x28\); //2C=高文字 28=ノーマル delay\(100\); } void init_oled\(\) { delay\(100\); writeCommand\(ClearDisplay\); // Clear Display delay\(20\); writeCommand\(ReturnHome\); // ReturnHome delay\(2\); writeCommand\(DisplayON\); // Send Display on command delay\(2\); writeCommand\(ClearDisplay\); // Clear Display delay\(20\); } RTCのコードがこちらです。 #include <Wire\.h> int DS1307_ADDRESS=0x68; int val=0; byte command; void setTime\(\){ byte hour=\(Serial\.read\(\)<<4\); hour=hour\+\(Serial\.read\(\)&0x0F\); byte minute=\(Serial\.read\(\)<<4\); minute=minute\+\(Serial\.read\(\)&0x0F\); byte sec=\(Serial\.read\(\)<<4\); sec=sec\+\(Serial\.read\(\)&0x0F\); Wire\.beginTransmission\(DS1307_ADDRESS\); Wire\.write\(val\); Wire\.write\(sec\); Wire\.write\(minute\); Wire\.write\(hour\); Wire\.endTransmission\(\); } void setDay\(\){ byte year=\(Serial\.read\(\)<<4\); year=year\+\(Serial\.read\(\)&0x0F\); byte month=\(Serial\.read\(\)<<4\); month=month\+\(Serial\.read\(\)&0x0F\); byte day=\(Serial\.read\(\)<<4\); day=day\+\(Serial\.read\(\)&0x0F\); byte day_of_week=\(Serial\.read\(\)&0x0F\); Wire\.beginTransmission\(DS1307_ADDRESS\); Wire\.write\(0x03\); Wire\.write\(day_of_week\); Wire\.write\(day\); Wire\.write\(month\); Wire\.write\(year\); Wire\.endTransmission\(\); } void printTime\(\){ Wire\.beginTransmission\(DS1307_ADDRESS\); Wire\.write\(val\); Wire\.endTransmission\(\); Wire\.requestFrom\(DS1307_ADDRESS,7\); byte r_sec=Wire\.read\(\); byte r_minute=Wire\.read\(\); byte r_hour=Wire\.read\(\); byte r_day_of_week=Wire\.read\(\); byte r_date=Wire\.read\(\); byte r_month=Wire\.read\(\); byte r_year=Wire\.read\(\); Serial\.print\(r_year,HEX\); Serial\.print\("/"\); Serial\.print\(r_month,HEX\); Serial\.print\("/"\); Serial\.print\(r_date,HEX\); Serial\.print\(" "\); Serial\.print\(r_hour,HEX\); Serial\.print\(":"\); Serial\.print\( r_minute,HEX\); Serial\.print\(":"\); Serial\.print\( r_sec,HEX\); Serial\.print\(" smtwtfs= "\); Serial\.println\(r_day_of_week,HEX\); } void setup\(\) { Serial\.begin\(9600\); Wire\.begin\(\); Serial\.flush\(\); } void loop\(\) { if\(Serial\.available\(\)\){ command=Serial\.read\(\); if\(command==0x74\){ setTime\(\); } Serial\.println\(command\); if\(command==0x64\){ setDay\(\); } } printTime\(\); delay\(2000\); } この2つのコードを使ってLCDに日付と時刻を表示したいです。
y_waiwai
y_waiwai

2021/01/31 05:56

聞きたいことがあるなら、質問に追記しましょう 編集できますよ。 コードは、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
nac_tnk
nac_tnk

2021/01/31 11:18

逆に質問になりますけど、秋月LCDのサンプルは問題無く動くのでしょうか? また、RTCのそのスケッチも問題なく動くのでしょうか?
DMR
DMR

2021/01/31 11:57

はい。各々単独ではちゃんと動きます。
nac_tnk
nac_tnk

2021/02/01 05:36

それならミックスにしても不具合は出なさそうですけど。 \(勿論Wire\.begin\(\);は1回で\) 単純に表示の仕方が判らないのでしょうか? それとも更新間隔とか、作り方の問題でしょうか?
DMR
DMR

2021/02/01 05:42

表示の仕方と作り方がわかりません。お願いします。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。