1extern crate firmata;
2
3use firmata::*;
4use std::thread;
5
6fn main() {
7 let mut b = firmata::Board::new("/dev/ttyACM0");
8
9 println!("firmware version {}", b.firmware_version);
10 println!("firmware name {}", b.firmware_name);
11 println!("protocol version {}", b.protocol_version);
12
13 let led = 13;
14 let button = 2;
15
16 b.set_pin_mode(led, firmata::OUTPUT);
17 b.set_pin_mode(button, firmata::INPUT);
18
19 b.report_digital(button, 1);
20
21 loop {
22 b.decode();
23 if b.pins[button as usize].value == 0 {
24 println!("off");
25 b.digital_write(led, 0);
26 } else {
27 println!("on");
28 b.digital_write(led, 1);
29 }
30
31 thread::sleep_ms(100);
32 }
33}