-- | Programming the Arduino Uno with Copilot.

{-# LANGUAGE DataKinds #-}

module Copilot.Arduino.Uno (
	module Copilot.Arduino
	-- * Pins
	, pin2
	, pin3
	, pin4
	, pin5
	, pin6
	, pin7
	, pin8
	, pin9
	, pin10
	, pin11
	, pin12
	, pin13
	, a0
	, a1
	, a2
	, a3
	, a4
	, a5
	, sizeOfEEPROM
) where

import Copilot.Arduino
import Copilot.Arduino.Internals

pin2, pin4, pin7, pin8, pin12, pin13 :: Pin '[ 'DigitalIO ]
pin3, pin5, pin6, pin9, pin10, pin11 :: Pin '[ 'DigitalIO, 'PWM ]
pin2 :: Pin '[ 'DigitalIO]
pin2 = Arduino -> Pin '[ 'DigitalIO]
forall k (t :: k). Arduino -> Pin t
Pin (Int16 -> Arduino
Arduino Int16
2)
pin3 :: Pin '[ 'DigitalIO, 'PWM]
pin3 = Arduino -> Pin '[ 'DigitalIO, 'PWM]
forall k (t :: k). Arduino -> Pin t
Pin (Int16 -> Arduino
Arduino Int16
3)
pin4 :: Pin '[ 'DigitalIO]
pin4 = Arduino -> Pin '[ 'DigitalIO]
forall k (t :: k). Arduino -> Pin t
Pin (Int16 -> Arduino
Arduino Int16
4)
pin5 :: Pin '[ 'DigitalIO, 'PWM]
pin5 = Arduino -> Pin '[ 'DigitalIO, 'PWM]
forall k (t :: k). Arduino -> Pin t
Pin (Int16 -> Arduino
Arduino Int16
5)
pin6 :: Pin '[ 'DigitalIO, 'PWM]
pin6 = Arduino -> Pin '[ 'DigitalIO, 'PWM]
forall k (t :: k). Arduino -> Pin t
Pin (Int16 -> Arduino
Arduino Int16
6)
pin7 :: Pin '[ 'DigitalIO]
pin7 = Arduino -> Pin '[ 'DigitalIO]
forall k (t :: k). Arduino -> Pin t
Pin (Int16 -> Arduino
Arduino Int16
7)
pin8 :: Pin '[ 'DigitalIO]
pin8 = Arduino -> Pin '[ 'DigitalIO]
forall k (t :: k). Arduino -> Pin t
Pin (Int16 -> Arduino
Arduino Int16
8)
pin9 :: Pin '[ 'DigitalIO, 'PWM]
pin9 = Arduino -> Pin '[ 'DigitalIO, 'PWM]
forall k (t :: k). Arduino -> Pin t
Pin (Int16 -> Arduino
Arduino Int16
9)
pin10 :: Pin '[ 'DigitalIO, 'PWM]
pin10 = Arduino -> Pin '[ 'DigitalIO, 'PWM]
forall k (t :: k). Arduino -> Pin t
Pin (Int16 -> Arduino
Arduino Int16
10)
pin11 :: Pin '[ 'DigitalIO, 'PWM]
pin11 = Arduino -> Pin '[ 'DigitalIO, 'PWM]
forall k (t :: k). Arduino -> Pin t
Pin (Int16 -> Arduino
Arduino Int16
11)
pin12 :: Pin '[ 'DigitalIO]
pin12 = Arduino -> Pin '[ 'DigitalIO]
forall k (t :: k). Arduino -> Pin t
Pin (Int16 -> Arduino
Arduino Int16
12)
-- | This pin drives the `led`
pin13 :: Pin '[ 'DigitalIO]
pin13 = Arduino -> Pin '[ 'DigitalIO]
forall k (t :: k). Arduino -> Pin t
Pin (Int16 -> Arduino
Arduino Int16
13)

a0, a1, a2, a3, a4, a5 :: Pin '[ 'AnalogInput, 'DigitalIO ]
a0 :: Pin '[ 'AnalogInput, 'DigitalIO]
a0 = Arduino -> Pin '[ 'AnalogInput, 'DigitalIO]
forall k (t :: k). Arduino -> Pin t
Pin (Int16 -> Arduino
Arduino Int16
14)
a1 :: Pin '[ 'AnalogInput, 'DigitalIO]
a1 = Arduino -> Pin '[ 'AnalogInput, 'DigitalIO]
forall k (t :: k). Arduino -> Pin t
Pin (Int16 -> Arduino
Arduino Int16
15)
a2 :: Pin '[ 'AnalogInput, 'DigitalIO]
a2 = Arduino -> Pin '[ 'AnalogInput, 'DigitalIO]
forall k (t :: k). Arduino -> Pin t
Pin (Int16 -> Arduino
Arduino Int16
16)
a3 :: Pin '[ 'AnalogInput, 'DigitalIO]
a3 = Arduino -> Pin '[ 'AnalogInput, 'DigitalIO]
forall k (t :: k). Arduino -> Pin t
Pin (Int16 -> Arduino
Arduino Int16
17)
a4 :: Pin '[ 'AnalogInput, 'DigitalIO]
a4 = Arduino -> Pin '[ 'AnalogInput, 'DigitalIO]
forall k (t :: k). Arduino -> Pin t
Pin (Int16 -> Arduino
Arduino Int16
18)
a5 :: Pin '[ 'AnalogInput, 'DigitalIO]
a5 = Arduino -> Pin '[ 'AnalogInput, 'DigitalIO]
forall k (t :: k). Arduino -> Pin t
Pin (Int16 -> Arduino
Arduino Int16
19)

sizeOfEEPROM :: Word16
sizeOfEEPROM :: Word16
sizeOfEEPROM = Word16
512