デジタル出力
デジタル出力はマイクロコントローラの最も基本となる機能である.デジタル出力のピンはHighかLowに設定される.Highの値はマイクロコントローラの動作電圧Vccで,Lowの値は
である.
基本操作
デジタル出力ピンの基本操作では,出力はHighかLowである.
Needs["MicrocontrollerKit`"]MicrocontrollerEmbedCode[NonlinearStateSpaceModel[{{}, {5}}, {}, {}, {Automatic}, Automatic, SamplingPeriod -> 1], <|"Target" -> "ArduinoUno", "Outputs" -> 13 -> "Digital"|>, "/dev/tty.usbmodem14101"]MicrocontrollerEmbedCode[NonlinearStateSpaceModel[{{}, {1.5}}, {}, {}, {Automatic}, Automatic, SamplingPeriod -> 1], <|"Target" -> "ArduinoUno", "Outputs" -> 13 -> "Digital"|>, "/dev/tty.usbmodem14101"]MicrocontrollerEmbedCode[NonlinearStateSpaceModel[{{}, {0}}, {}, {}, {Automatic}, Automatic, SamplingPeriod -> 1], <|"Target" -> "ArduinoUno", "Outputs" -> 13 -> "Digital"|>, "/dev/tty.usbmodem14101"]MicrocontrollerEmbedCode[NonlinearStateSpaceModel[{{Which[x > 0, 0, True, 1]}, {x}}, {x}, {}, {Automatic}, Automatic, SamplingPeriod -> 1], <|"Target" -> "ArduinoUno", "Outputs" -> 13 -> "Digital"|>, "/dev/tty.usbmodem14101"]"pin"->"Digital"という指定は"pin"-><|"Type"->"Digital"|>に等しい.
パルスの生成
基本操作では,出力はサンプリング区間全体においてHighかLowであり続けた.しかし,出力タイプを"Pulse"と指定することで,可変幅のパルスが生成できる.
指定の完全形は"pin"-><|"Type"->"Pulse",spec1->val1,…|>である.specs には以下が与えられる:
デフォルトでは,τp はサンプリング周期 sys である τ と等しいと仮定される.明示的にタイマを指定することもできるが,指定しない場合は自動的に選ばれる.
τp が τ より大きい場合は,τp は実質 τ である.Δ が τp より大きい場合は,Δ は実質 τp である.
MicrocontrollerEmbedCode[NonlinearStateSpaceModel[{{}, {1}}, {}, {}, {Automatic}, Automatic, SamplingPeriod -> 5], <|"Target" -> "ArduinoUno", "Outputs" -> 13 -> "Pulse"|>, "/dev/tty.usbmodem14101"]MicrocontrollerEmbedCode[NonlinearStateSpaceModel[{{}, {1}}, {}, {}, {Automatic}, Automatic, SamplingPeriod -> 5], <|"Target" -> "ArduinoUno", "Outputs" -> 13 -> <|"Type" -> "Pulse", SamplingPeriod -> 2|>|>, "/dev/tty.usbmodem14101"]MicrocontrollerEmbedCode[NonlinearStateSpaceModel[{{}, {1}}, {}, {}, {Automatic}, Automatic, SamplingPeriod -> 5], <|"Target" -> "ArduinoUno", "Outputs" -> 13 -> <|"Type" -> "Pulse", SamplingPeriod -> 2, "Timer" -> 2|>|>, "/dev/tty.usbmodem14101"]MicrocontrollerEmbedCode[NonlinearStateSpaceModel[{{}, {1}}, {}, {}, {Automatic}, Automatic, SamplingPeriod -> 2], <|"Target" -> "ArduinoUno", "Outputs" -> 13 -> "Pulse"|>, "/dev/tty.usbmodem14101"]MicrocontrollerEmbedCode[NonlinearStateSpaceModel[{{}, {1}}, {}, {}, {Automatic}, Automatic, SamplingPeriod -> 4], <|"Target" -> "ArduinoUno", "Outputs" -> 13 -> <|"Type" -> "Pulse", SamplingPeriod -> 2|>|>, "/dev/tty.usbmodem14101"]MicrocontrollerEmbedCode[NonlinearStateSpaceModel[{{Which[x > 0, 0, True, 1]}, {x}}, {x}, {}, {Automatic}, Automatic, SamplingPeriod -> 1], <|"Target" -> "ArduinoUno", "Outputs" -> 13 -> "Digital"|>, "/dev/tty.usbmodem14101"]