DUO-GL128-PIC24Fでは、グラフィックLCDの制御に多くの信号線を必要とする一方で、28ピンのPIC24Fでは使える信号線の数が限られているため、グラフィックLCDのデータ線と、スイッチの信号線を兼用する様に設計されています。このため、スイッチが接続されている信号線を単純に読むだけでは、グラフィックLCDのデータと混線してしまうという問題があります。
DUO-GL128-PIC24F用のPICSYSでは、このような問題が生じない様にシステム側で処理したスイッチのデータを読み出すための仮想スイッチを、VSW(n)の様な形式で指定して読み出せる様にしています。
swled1.c: スイッチとLED
#include "picsys24.h"
void setup()
{
PICSYS18では、4個までのPWM出力を任意のI/Oピンに接続し、制御することができます。
PWM出力の制御は、基本的に2つの操作で行います。例えばRB0ポートにLEDなどを接続した場合、以下の2つの操作を行います。
PWMパルスの継続的な出力処理は、PICSYS18が自動的に行います。
expwmled1.c: 1個のLEDのPWM制御
#include "picsys18.h"
void setup()
{
exsw1.c
#include "picsys18.h"
void setup()
{
pinMode(LED1, OUTPUT) ;
pinMode(SW1, INPUT) ;
}
void loop()
{
digitalWrite(LED1, digitalRead(SW1)) ;
}
PIC-DEV-690RLに搭載されているLEDを点滅させる簡単なスケッチを紹介します。
このスケッチは、以下のボードでもそのまま動きます。(MPLABプロジェクトのデバイス設定や、ボードを指定するマクロ定義などはそれぞれに合わせた変更が必要です)
PIC-DEV-886RLを評価ボードとして、PIC16F886のプログラム例を紹介します。
このページのプログラムはPIC-DEV-886RLでもPIC-DEV-886Rでもそのまま動きます。
PIC-DEV-886RLのソフトウェア的なポート構成
dsPIC-DEV-3013RLを評価ボードとして、dsPIC30F3013のプログラム例を紹介します。
dsPIC-DEV-3013RLがソフトウェア的にどのように見えるかを以下に示します。以下の内容は、dspicdev3013rl.hの一部です。SW~はタクトスイッチ、LED~は発光ダイオード、CLCD~はキャラクタ液晶ディスプレイのポート設定を示します。スイッチやLEDなどがどのポートに接続されているかや、そのポートの入出力方向の設定や、プルアップなどの設定を行うSFRの名前などを示しています。
電子工作で光ものといえばLEDですね。電子工作の基礎の基礎、LEDの点灯実験をしましょう。
LEDには2本の足があり、それぞれアノード(足の長いほう)とカソードと呼ばれます。電流はアノードからカソードに流れ、発光します。このため、アノードが+側、カソードが-側になるように配線して利用します。
LEDをMCUなどに接続して発光制御する場合、アクティブローとアクティブハイの2種類の接続法があります。LEDのアノード(+側)をVCCに、カソード(-側)をMCUに接続する方法はアクティブローとなり、LEDのアノード(+側)をMCUに、カソード(-側)をGNDに接続する方法はアクティブハイとなります。なお、LEDの接続には、LEDに電源が流れすぎないように、適切な値の抵抗を直列に入れます。
アクティブローの接続方法の場合には、MCUのポートに0を出力するとLEDが点灯し、アクティブハイの接続方法の場合には、1を出力するとLEDが点灯します。