不惑にしてまだ何者でもない者のブログ

Arduino関連、Raspberry Pi関連、プログラミング学習

CrowPiレッスン15:セグメントディスプレイの制御。

2020-11-10 23:57:58 | CrowPi

Controlling the Segment Display.

レッスン15"セグメントディスプレイの制御。"をやっていく。
※ レッスンPDF等では、”Controlling the 7 Segment Display.”と書いてあるが、7という数字は、単なるセンサーリストの連番が7だっただけで、間違ってコピペされたようだ。7に特に意味はないので、削除した。

概要を引用
セグメントLEDは、数値やデータに関して非常に便利なディスプレイです。
それは私たちに時間を示し、私たちが特定のことをした回数を数え、偽の時限爆弾で友達を怖がらせるために使用されることさえできます!
セグメントLEDは、エレベータなどの多くの産業用ソリューションで使用されています。 そしてそれを使用することは間違いなく将来あなたのために役立つでしょう!

何を学習するか

このレッスンを終了すると、次のことができるようになります。
  • セグメントLEDを制御し、さまざまな数値とデータを表示します

何が必要か

  • 初期設定後のCrowPiボード

Requires switching modules using the switch

  • いいえ

CrowPi上のセグメントディスプレイの位置



RaspberryPiシステムのタイムゾーンの調整

sudo dpkg-reconfigure tzdata
でタイムゾーンを設定する。
初期設定でちゃんと設定していれば、省略可。
レッスン動画だと、
sudo raspi-config
で行うとのこと。
※ 以前言及したが、YouTubeのレッスン動画は、レッスン10とレッスン15のデモ部分が入れ替わっているので、注意が必要である。

セグメントディスプレイの操作

このレッスンで使用するPythonスクリプトは以下の通り。

Examples/segment.py
#!/usr/bin/python

import time
import datetime
from Adafruit_LED_Backpack import SevenSegment

# ===========================================================================
# Clock Example
# ===========================================================================
segment = SevenSegment.SevenSegment(address=0x70)

# Initialize the display. Must be called once before using the display.
segment.begin()

print("Press CTRL+C to exit")

# Continually update the time on a 4 char, 7-segment display
try:
 while(True):
  now = datetime.datetime.now()
  hour = now.hour
  minute = now.minute
  second = now.second

  segment.clear()
  # Set hours
  segment.set_digit(0, int(hour / 10)) # Tens
  segment.set_digit(1, hour % 10) # Ones
  # Set minutes
  segment.set_digit(2, int(minute / 10)) # Tens
  segment.set_digit(3, minute % 10) # Ones
  # Toggle colon
  segment.set_colon(second % 2) # Toggle colon at 1Hz

  # Write the display buffer to the hardware. This must be called to
  # update the actual display LEDs.
  segment.write_display()

  # Wait a quarter second (less than 1 second to prevent colon blinking getting$
  time.sleep(0.25)
 except KeyboardInterrupt:
  segment.clear()
  segment.write_display()

時刻と日付の時刻モジュールを使用してRaspberryPiシステム時刻を取得し、セグメントI2Cアドレスを70に設定してから、segment.write_display()を使用してセグメント表示でシステムの現在時刻を設定します。 関数set_digit()を数字0,1,2,3の番号とともに使用して、番号を表示する場所を設定します。

このスクリプトを実行すると、セグメントディスプレイに時刻が表示される。


無限ループとなるのでCTRL+Cで終了。


最新の画像もっと見る

コメントを投稿