forked from FiniteMonkeys/UpsideDownLEDs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsmoke_test.exs
56 lines (49 loc) · 1.25 KB
/
smoke_test.exs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
defmodule SmokeTest do
defp blink(pid, delay_during \\ 500, delay_after \\ 500) do
ElixirALE.GPIO.write(pid, 0)
:timer.sleep(delay_during)
ElixirALE.GPIO.write(pid, 1)
:timer.sleep(delay_after)
end
def go do
pin_defs = %{
"A" => 13,
"B" => 16,
"C" => 21,
"D" => 4,
"E" => 17,
"F" => 20,
"G" => 12,
"H" => 19,
"I" => 2,
"J" => 25,
"K" => 3,
"L" => 14,
"M" => 15,
"N" => 5,
"O" => 6,
"P" => 11,
"Q" => 27,
"R" => 7,
"S" => 24,
"T" => 8,
"U" => 23,
"V" => 26,
"W" => 18,
"X" => 22,
"Y" => 9,
"Z" => 10,
}
pin_map = pin_defs
|> Enum.map(fn {letter, pin_no} ->
{:ok, pid} = ElixirALE.GPIO.start_link(pin_no, :output)
{letter, pid}
end)
|> Enum.into(%{})
pin_map |> Enum.each(fn {_, pid} -> ElixirALE.GPIO.write(pid, 1) end)
?A..?Z |> Enum.each(fn letter -> pin_map[to_string([letter])] |> blink(300, 0); end)
:timer.sleep(2000)
"HELLO" |> String.to_charlist |> Enum.each(fn letter -> pin_map[to_string([letter])] |> blink(); end)
end
end
SmokeTest.go