From d41a25c26c6433e84d90b0c7ff99b347fb194f48 Mon Sep 17 00:00:00 2001 From: Jeff Casimir Date: Fri, 16 Nov 2012 15:19:53 -0500 Subject: [PATCH] Codenow arduino solutions --- source/codenow/blink.rb | 58 ++++++++++++++++++++++++++++++++++++ source/codenow/nightlight.rb | 20 +++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 source/codenow/blink.rb create mode 100644 source/codenow/nightlight.rb diff --git a/source/codenow/blink.rb b/source/codenow/blink.rb new file mode 100644 index 000000000..0c8591bb9 --- /dev/null +++ b/source/codenow/blink.rb @@ -0,0 +1,58 @@ +require 'dino' + +board = Dino::Board.new(Dino::TxRx.new) +lower_led = Dino::Components::Led.new(pin: 11, board: board) +upper_led = Dino::Components::Led.new(pin: 10, board: board) + +def blink(led) + led.send(:on) + sleep 0.1 + led.send(:off) + sleep 0.1 +end + +def celebrate() + led.send(:on) + sleep 0.1 + led.send(:off) + sleep 0.1 +end + +def celebrate(leds) + 10.times do + leds.each do |led| + led.send(:on) + end + + sleep 0.05 + + leds.each do |led| + led.send(:off) + end + + sleep 0.05 + end +end + +secret = rand(101) +puts "Guess a number from 0 to 100:" +guess = gets.chomp.to_i +until guess == secret + difference = secret-guess + if difference < 0 + led = upper_led + else + led = lower_led + end + + if difference.abs > 15 + 3.times{ blink(led) } + elsif difference.abs >= 5 + 2.times{ blink(led) } + else + blink(led) + end + puts "Guess a number from 0 to 100:" + guess = gets.chomp.to_i +end +celebrate([lower_led, upper_led]) diff --git a/source/codenow/nightlight.rb b/source/codenow/nightlight.rb new file mode 100644 index 000000000..2ab5e2d82 --- /dev/null +++ b/source/codenow/nightlight.rb @@ -0,0 +1,20 @@ +require 'dino' + +board = Dino::Board.new(Dino::TxRx.new) +lower_led = Dino::Components::Led.new(pin: 11, board: board) +upper_led = Dino::Components::Led.new(pin: 10, board: board) +sensor = Dino::Components::Sensor.new(pin: 'A0', board: board) + +on_data = Proc.new do |data| + if data.to_i < 100 + #puts "It's light!" + upper_led.send(:off) + else + #puts "It's dark!" + upper_led.send(:on) + end +end + +sensor.when_data_received(on_data) + +sleep \ No newline at end of file