From 5b737b67e45cd2ad8243f968667f75cbcc6cab63 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 15 Feb 2015 17:46:42 +0100 Subject: [PATCH] Initial Commit Sun Feb 15 17:46:58 CET 2015 From Conny. --- README | 21 + RGB_LED/README | 2 + RGB_LED/RGB_PWM/RGB_PWM.ino | 60 +++ RGB_LED/rgb_all_color/rgb_all_color.ino | 45 +++ .../LCD_clock/LCD_working_0/LCD_working_0.ino | 23 ++ .../display_time_1/display_time_1.ino | 53 +++ advanced_projects/README | 7 + ...t_knight_rider_10LED_array_iteration_1.ino | 84 ++++ .../schema.png | Bin 0 -> 229430 bytes basic/TO_DO | 10 + .../button_presses_LED_6.ino | 31 ++ ...button_presses_LED_blinking_deBounce_8.ino | 50 +++ .../button_presses_LED_deBounce_7.ino | 35 ++ .../button_presses_count_down_5.ino | 36 ++ .../button_presses_counter_AND_4.ino | 30 ++ basic/button_state_3/button_state_3.ino | 29 ++ ...ta_types_bin_hex_transformation_serial.ino | 40 ++ basic/led_PWM_simple/led_PWM_simple.ino | 27 ++ basic/simplest_pwm_byte/simplest_pwm_byte.ino | 27 ++ basic/switch_LED_2/switch_LED_2.ino | 24 ++ .../switch_test_serial/switch_test_serial.ino | 19 + .../blink_with_functions.ino | 52 +++ .../head_tails_ino/head_tails_ino.ino | 61 +++ .../leap_year_functions.ino | 80 ++++ .../loop_match_2_for_loop.ino | 64 +++ .../loop_match_2_while_loop.ino | 67 ++++ basic_programming/loops/switch_loop_README | 6 + .../pointers_c/pointers/pointers.ino | 45 +++ .../pointers_3_resetting_before_use.ino | 49 +++ .../pointers_function_scope_break.ino | 41 ++ .../structure_pointers_function_stack_4.ino | 47 +++ .../IR_reading_mapped/IR_reading_mapped.ino | 58 +++ .../basic_IR_reading_0/basic_IR_reading_0.ino | 33 ++ hardware/LCD_2x16/LCD_2x16.ino | 20 + .../LCD_display_4x20/LCD_display_4x20.ino | 58 +++ hardware/ethernet/README | 9 + .../ethernet_analog_read.ino | 69 ++++ .../ethernet_hello_world.ino | 38 ++ .../ethernet/ethernet_time/ethernet_time.ino | 48 +++ hardware/gyro_6axis/gyro_6axis.ino | 375 ++++++++++++++++++ .../mesure_cyclic_lenght.ino | 30 ++ .../real_time_clock__DS3231.ino | 118 ++++++ .../ultrasonic_distance_programming.ino | 193 +++++++++ .../ultrasonic_distance_simple.ino | 54 +++ ...enziometer__minimum_transistor_diode_3.ino | 51 +++ ...r_PWM_potenziometer_transistor_diode_2.ino | 41 ++ .../simple_motor_PWM_transistor_diode_1.ino | 27 ++ .../simple_motor_transistor_diode_0.ino | 23 ++ .../analogInput_with_range.ino | 59 +++ .../analogInput_with_range_and_limits.ino | 71 ++++ piezo/README | 3 + .../keyboard_three_pullup_buttons.ino | 47 +++ piezo/piezo_mario_tune/piezo_mario_tune.ino | 193 +++++++++ piezo/piezo_mario_tune/pitches.h | 95 +++++ serial/README | 8 + .../shiftOut_binary_count.ino | 57 +++ .../shift_register_8bit.ino | 43 ++ .../shift_register_custom_pattern_4.ino | 136 +++++++ .../shift_register_pattern.ino | 52 +++ .../sketch_jan27c/sketch_jan27c.ino | 136 +++++++ .../shift_register_serial.ino | 69 ++++ 61 files changed, 3379 insertions(+) create mode 100644 README create mode 100644 RGB_LED/README create mode 100644 RGB_LED/RGB_PWM/RGB_PWM.ino create mode 100644 RGB_LED/rgb_all_color/rgb_all_color.ino create mode 100644 advanced_projects/LCD_clock/LCD_working_0/LCD_working_0.ino create mode 100644 advanced_projects/LCD_clock/display_time_1/display_time_1.ino create mode 100644 advanced_projects/README create mode 100644 advanced_projects/kit_knight_rider_10LED_array_iteration_1/kit_knight_rider_10LED_array_iteration_1.ino create mode 100644 advanced_projects/kit_knight_rider_10LED_array_iteration_1/schema.png create mode 100644 basic/TO_DO create mode 100644 basic/button_presses_LED_6/button_presses_LED_6.ino create mode 100644 basic/button_presses_LED_blinking_deBounce_8/button_presses_LED_blinking_deBounce_8.ino create mode 100644 basic/button_presses_LED_deBounce_7/button_presses_LED_deBounce_7.ino create mode 100644 basic/button_presses_count_down_5/button_presses_count_down_5.ino create mode 100644 basic/button_presses_counter_AND_4/button_presses_counter_AND_4.ino create mode 100644 basic/button_state_3/button_state_3.ino create mode 100644 basic/data_types_bin_hex_transformation_serial/data_types_bin_hex_transformation_serial.ino create mode 100644 basic/led_PWM_simple/led_PWM_simple.ino create mode 100644 basic/simplest_pwm_byte/simplest_pwm_byte.ino create mode 100644 basic/switch_LED_2/switch_LED_2.ino create mode 100644 basic/switch_test_serial/switch_test_serial.ino create mode 100644 basic_programming/blink_with_functions/blink_with_functions.ino create mode 100644 basic_programming/conditional_test/head_tails_ino/head_tails_ino.ino create mode 100644 basic_programming/leap_year_functions/leap_year_functions.ino create mode 100644 basic_programming/loops/loop_match_2_for_loop/loop_match_2_for_loop.ino create mode 100644 basic_programming/loops/loop_match_2_while_loop/loop_match_2_while_loop.ino create mode 100644 basic_programming/loops/switch_loop_README create mode 100644 basic_programming/pointers_c/pointers/pointers.ino create mode 100644 basic_programming/pointers_c/pointers_3_resetting_before_use/pointers_3_resetting_before_use.ino create mode 100644 basic_programming/pointers_c/pointers_function_scope_break/pointers_function_scope_break.ino create mode 100644 basic_programming/pointers_c/structure_pointers_function_stack_4/structure_pointers_function_stack_4.ino create mode 100644 hardware/Infrared_controller/IR_reading_mapped/IR_reading_mapped.ino create mode 100644 hardware/Infrared_controller/basic_IR_reading_0/basic_IR_reading_0.ino create mode 100644 hardware/LCD_2x16/LCD_2x16.ino create mode 100644 hardware/LCD_display_4x20/LCD_display_4x20.ino create mode 100644 hardware/ethernet/README create mode 100644 hardware/ethernet/ethernet_analog_read/ethernet_analog_read.ino create mode 100644 hardware/ethernet/ethernet_hello_world/ethernet_hello_world.ino create mode 100644 hardware/ethernet/ethernet_time/ethernet_time.ino create mode 100644 hardware/gyro_6axis/gyro_6axis.ino create mode 100644 hardware/mesure_cyclic_lenght/mesure_cyclic_lenght.ino create mode 100644 hardware/real_time_clock__DS3231/real_time_clock__DS3231.ino create mode 100644 hardware/ultrasonic/ultrasonic_distance_programming/ultrasonic_distance_programming.ino create mode 100644 hardware/ultrasonic/ultrasonic_distance_simple/ultrasonic_distance_simple.ino create mode 100644 motors/simple_motor_PWM_potenziometer__minimum_transistor_diode_3/simple_motor_PWM_potenziometer__minimum_transistor_diode_3.ino create mode 100644 motors/simple_motor_PWM_potenziometer_transistor_diode_2/simple_motor_PWM_potenziometer_transistor_diode_2.ino create mode 100644 motors/simple_motor_PWM_transistor_diode_1/simple_motor_PWM_transistor_diode_1.ino create mode 100644 motors/simple_motor_transistor_diode_0/simple_motor_transistor_diode_0.ino create mode 100644 optimization/analogInput_with_range/analogInput_with_range.ino create mode 100644 optimization/analogInput_with_range_and_limits/analogInput_with_range_and_limits.ino create mode 100644 piezo/README create mode 100644 piezo/keyboard_three_pullup_buttons/keyboard_three_pullup_buttons.ino create mode 100644 piezo/piezo_mario_tune/piezo_mario_tune.ino create mode 100644 piezo/piezo_mario_tune/pitches.h create mode 100644 serial/README create mode 100644 shift_register/shiftOut_binary_count/shiftOut_binary_count.ino create mode 100644 shift_register/shift_register_8bit/shift_register_8bit.ino create mode 100644 shift_register/shift_register_custom_pattern_4/shift_register_custom_pattern_4.ino create mode 100644 shift_register/shift_register_pattern/shift_register_pattern.ino create mode 100644 shift_register/shift_register_pattern/sketch_jan27c/sketch_jan27c.ino create mode 100644 shift_register/shift_register_serial/shift_register_serial.ino diff --git a/README b/README new file mode 100644 index 0000000..e2a6dec --- /dev/null +++ b/README @@ -0,0 +1,21 @@ +Andrea's Sketchbook +===================== + +Esempi per i corsi su Arduino. +Le ultime versioni sono disponibili su: git.andreamanni.com + +Per aggiornare il proprio archivio: +cd sketchbook_andrea/ ; git fetch + + +Note +------ + +- head_tails_ino +Is the code example of C book for control structures (IF) + +- loop_match_2_ino +Is the code example of C book for iterative structures (while - for loop) + + +>-- Copyright note: all these is released into the Public Domain --< diff --git a/RGB_LED/README b/RGB_LED/README new file mode 100644 index 0000000..133660a --- /dev/null +++ b/RGB_LED/README @@ -0,0 +1,2 @@ +Ottima lezione in italiano: +- http://www.maffucci.it/2014/09/27/arduino-lezione-09-uso-di-led-rgb-parte-1/ diff --git a/RGB_LED/RGB_PWM/RGB_PWM.ino b/RGB_LED/RGB_PWM/RGB_PWM.ino new file mode 100644 index 0000000..9563785 --- /dev/null +++ b/RGB_LED/RGB_PWM/RGB_PWM.ino @@ -0,0 +1,60 @@ +// This is meant for a Common Anodote RGB LED +// See all those (255 - val). + +#define GREEN 9 +#define BLUE 10 +#define RED 11 +#define delayTime 20 + +void setup() { + + pinMode(GREEN, OUTPUT); + pinMode(BLUE, OUTPUT); + pinMode(RED, OUTPUT); + digitalWrite(GREEN, HIGH); + digitalWrite(BLUE, HIGH); + digitalWrite(RED, HIGH); +} + +int redVal; +int blueVal; +int greenVal; + +void loop() { + + int redVal = 255; + int blueVal = 0; + int greenVal = 0; + for( int i = 0 ; i < 255 ; i += 1 ){ + greenVal += 1; + redVal -= 1; + analogWrite( GREEN, 255 - greenVal ); + analogWrite( RED, 255 - redVal ); + + delay( delayTime ); + } + + redVal = 0; + blueVal = 0; + greenVal = 255; + for( int i = 0 ; i < 255 ; i += 1 ){ + blueVal += 1; + greenVal -= 1; + analogWrite( BLUE, 255 - blueVal ); + analogWrite( GREEN, 255 - greenVal ); + + delay( delayTime ); + } + + redVal = 0; + blueVal = 255; + greenVal = 0; + for( int i = 0 ; i < 255 ; i += 1 ){ + redVal += 1; + blueVal -= 1; + analogWrite( RED, 255 - redVal ); + analogWrite( BLUE, 255 - blueVal ); + + delay( delayTime ); + } +} diff --git a/RGB_LED/rgb_all_color/rgb_all_color.ino b/RGB_LED/rgb_all_color/rgb_all_color.ino new file mode 100644 index 0000000..29969ad --- /dev/null +++ b/RGB_LED/rgb_all_color/rgb_all_color.ino @@ -0,0 +1,45 @@ + /* + Adafruit Arduino - Lesson 3. RGB LED + */ + + int redPin = 11; + int greenPin = 10; + int bluePin = 9; + + //uncomment this line if using a Common Anode LED + //#define COMMON_ANODE + + void setup() + { + pinMode(redPin, OUTPUT); + pinMode(greenPin, OUTPUT); + pinMode(bluePin, OUTPUT); + } + + void loop() + { + setColor(255, 0, 0); // red + delay(1000); + setColor(0, 255, 0); // green + delay(1000); + setColor(0, 0, 255); // blue + delay(1000); + setColor(255, 255, 0); // yellow + delay(1000); + setColor(80, 0, 80); // purple + delay(1000); + setColor(0, 255, 255); // aqua + delay(1000); + } + + void setColor(int red, int green, int blue) + { + #ifdef COMMON_ANODE + red = 255 - red; + green = 255 - green; + blue = 255 - blue; + #endif + analogWrite(redPin, red); + analogWrite(greenPin, green); + analogWrite(bluePin, blue); + } diff --git a/advanced_projects/LCD_clock/LCD_working_0/LCD_working_0.ino b/advanced_projects/LCD_clock/LCD_working_0/LCD_working_0.ino new file mode 100644 index 0000000..bc6e95c --- /dev/null +++ b/advanced_projects/LCD_clock/LCD_working_0/LCD_working_0.ino @@ -0,0 +1,23 @@ +// Chapter 7: Arduino Alarm Clock +// An alarm clock that uses the Adafruit Industries DS1307 RTC Breakout board +// and a 16 x 2 Parallel LCD Display +#include // I2C Wire Library for communicating with the DS1307 RTC +#include "RTClib.h" // Date and time functions for the DS1307 RTC connected +#include // Display functions for the LCD Display +RTC_DS1307 rtc; // Create a realtime clock called rtc +LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Create an LCD called lcd + + +void setup () { + Wire.begin(); // Enables the communication for the LCD + rtc.begin(); // Enables the RTC + lcd.begin(16, 2); // Enables the LCD + + lcd.print(" It's Alive!"); // Print a message, centered, to the LCD to confirm it's working + delay(500); // Wait a moment so we can read it + lcd.clear(); // Clear the LCD +} +void loop(){ + +} + diff --git a/advanced_projects/LCD_clock/display_time_1/display_time_1.ino b/advanced_projects/LCD_clock/display_time_1/display_time_1.ino new file mode 100644 index 0000000..9208552 --- /dev/null +++ b/advanced_projects/LCD_clock/display_time_1/display_time_1.ino @@ -0,0 +1,53 @@ +// Chapter 7: Arduino Alarm Clock +// An alarm clock that uses the Adafruit Industries DS1307 RTC Breakout board +// and a 16 x 2 Parallel LCD Display +#include // I2C Wire Library for communicating with the DS1307 RTC +#include "RTClib.h" // Date and time functions for the DS1307 RTC connected +#include // Display functions for the LCD Display +RTC_DS1307 rtc; // Create a realtime clock called rtc +LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Create an LCD called lcd + +DateTime now; // Time object + +void setup () { + Wire.begin(); // Enables the communication for the LCD + rtc.begin(); // Enables the RTC + lcd.begin(16, 2); // Enables the LCD + + lcd.print(" It's Alive!"); // Print a message, centered, to the LCD to confirm it's working + delay(500); // Wait a moment so we can read it + lcd.clear(); // Clear the LCD +} +void loop(){ + now = rtc.now(); // Get the current time + // Refresh the display + updateDisplay(); +} + +void updateDisplay(){ + int h = now.hour(); // Get the hours right now and store them in an integer called h + int m = now.minute(); // Get the minutes right now and store them in an integer called m + int s = now.second(); // Get the seconds right now and store them in an integer called s + lcd.setCursor(0, 0); // Set the cursor at the column zero, upper row... + lcd.print(" The time is: "); // ...with spaces to clear characters from setting alarm. + lcd.setCursor(4, 1); // Move the cursor to column four, lower row + if (h<10){ // Add a zero, if necessary, as above + lcd.print(0); + } + lcd.print(h); // Display the current hour + lcd.setCursor(6, 1); // Move to the next column + lcd.print(":"); // And print the colon + lcd.setCursor(7, 1); // Move to the next column + if (m<10){ // Add a zero, if necessary, as above + lcd.print(0); + } + lcd.print(m); // Display the current minute + lcd.setCursor(9, 1); // Move to the next column + lcd.print(":"); // And print the colon + lcd.setCursor(10, 1); // Move to the next column + if (s<10){ // Add a zero, if necessary, as above + lcd.print(0); + } + lcd.print(s); // Display the current second +} + diff --git a/advanced_projects/README b/advanced_projects/README new file mode 100644 index 0000000..27913a9 --- /dev/null +++ b/advanced_projects/README @@ -0,0 +1,7 @@ +This examples are taken from the book: += Arduino Projects For Dummies + ISBN: 978-1-118-55147-9 + +Codes and schematics are available from: +http://www.dummies.com/store/product/Arduino-Projects-For-Dummies.productCd-1118551478,navId-322496,descCd-DOWNLOAD.html +/ Downloads. diff --git a/advanced_projects/kit_knight_rider_10LED_array_iteration_1/kit_knight_rider_10LED_array_iteration_1.ino b/advanced_projects/kit_knight_rider_10LED_array_iteration_1/kit_knight_rider_10LED_array_iteration_1.ino new file mode 100644 index 0000000..d612db0 --- /dev/null +++ b/advanced_projects/kit_knight_rider_10LED_array_iteration_1/kit_knight_rider_10LED_array_iteration_1.ino @@ -0,0 +1,84 @@ +/* Arduino Projects for Dummies + * by Brock Craft + * + * Chapter 4: The All-Seeing Eye + * Sequentially lights up a series of LEDs + * + * v0.3 02.02.2015 + * Changed delayTime variable so that is is consistent with the + * text of the book. (Used to be timeDelay.) + * v0.2 03.07.2013 + * Fixed error: timeChanged = millis(); not within if loop brackets + */ + +// A variable to set a delay time between each LED +int delayTime = 50; + +// A variable to store which LED we are currently working on +int currentLED = 0; + +// A variable to store the direction of travel of LEDs +int dir = 1; + +// A variable to store the last time we changed something +unsigned long timeChanged = 0; + +// Create an array to hold the value for each LED pin +byte ledPin[] = { + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; + +void setup() { + // Set all pins for OUTPUT with a counter + for (int x=0; x<10; x++) { + pinMode(ledPin[x], OUTPUT); + } + + // Set all pins for OUTPUT iterating a pointer + // byte *ptr = ledPin ; + // while (*ptr) { + // pinMode(*ptr++, OUTPUT); + // } + + // Set up the + timeChanged = millis(); +} + +void loop() { + // Check whether it has been long enough + if ((millis() - timeChanged) > delayTime) { + // Turn off all of the LEDs, see next comment + for (int x=0; x<10; x++) { + digitalWrite(ledPin[x], LOW); + } + // Turning off just one LED instead on 10 would be more efficient + // digitalWrite(ledPin[currentLED - dir], LOW); + + // Turn on the current LED + digitalWrite(ledPin[currentLED], HIGH); + + // Increment by the direction value + currentLED += dir; + + // If we are at the end of a row, change direction + if (currentLED == 9) { + dir = -1; + } + if (currentLED == 0) { + dir = 1; + } + + // Let's change the speed wit a Pot on pin A5 + // delayTime = map(analogRead(5),0,1024,20,5 00); + // delay(2); + + // Store the current time as the time we last changed LEDs + timeChanged = millis(); + } +} + + + + + + + diff --git a/advanced_projects/kit_knight_rider_10LED_array_iteration_1/schema.png b/advanced_projects/kit_knight_rider_10LED_array_iteration_1/schema.png new file mode 100644 index 0000000000000000000000000000000000000000..99f077a46fa8d967f5938f37d7d9cb6e20acf462 GIT binary patch literal 229430 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 z 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ξ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

qL;eGZvA@N=J?Q5-LX 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

j$YaI8E?fiW1*++gnUC!mph!as2Iw%cv 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 AiU0rr literal 0 HcmV?d00001 diff --git a/basic/TO_DO b/basic/TO_DO new file mode 100644 index 0000000..bd449fb --- /dev/null +++ b/basic/TO_DO @@ -0,0 +1,10 @@ +Sketch 8: Sketch con 4 modi per il LED: + +1. OFF +2. ON +3. Blink +4. Fast Blink + + +Si potrebbe fare con una struttura switch per attivare il modo, +valutare se usare un array per iterare tra i modi. diff --git a/basic/button_presses_LED_6/button_presses_LED_6.ino b/basic/button_presses_LED_6/button_presses_LED_6.ino new file mode 100644 index 0000000..771bbcc --- /dev/null +++ b/basic/button_presses_LED_6/button_presses_LED_6.ino @@ -0,0 +1,31 @@ +/* + * Alternating switch + */ + +int switchPin = 2; // switch is connected to pin 2 +int val; // variable for reading the pin status +int buttonState; // variable to hold the last button state +int lightMode = 0; // State of the light +int LED = 12; + +void setup() { + pinMode(switchPin, INPUT_PULLUP); // Set the switch pin as input + pinMode(LED, OUTPUT); + + buttonState = digitalRead(switchPin); // read the initial state + +} + + +void loop(){ + val = digitalRead(switchPin); // read input value and store it in val + delay(100); // Debounce + if ((val != buttonState) && (val == HIGH)) { // check if the button is pressed + lightMode = 1 -lightMode ; + } + digitalWrite(LED,lightMode); + buttonState = val; // save the new state in our variable +} + + + diff --git a/basic/button_presses_LED_blinking_deBounce_8/button_presses_LED_blinking_deBounce_8.ino b/basic/button_presses_LED_blinking_deBounce_8/button_presses_LED_blinking_deBounce_8.ino new file mode 100644 index 0000000..3116b42 --- /dev/null +++ b/basic/button_presses_LED_blinking_deBounce_8/button_presses_LED_blinking_deBounce_8.ino @@ -0,0 +1,50 @@ +/* + * Turn on / off LED with a switch. + When the lightmode is on the LED Blinks + */ + +int switchPin = 2; // switch is connected to pin 2 +int val; // variable for reading the pin status +int valBounce ; // variable for debouncing +int buttonState; // variable to hold the last button state +int lightMode = 0; // State of the light +int LED = 12; + +void setup() { + pinMode(switchPin, INPUT_PULLUP); // Set the switch pin as input + pinMode(LED, OUTPUT); + + buttonState = digitalRead(switchPin); // read the initial state + +} + + +void loop(){ + val = digitalRead(switchPin); // read input value and store it in val + delay(10); // Debounce + valBounce = digitalRead(switchPin); // read input value and store it in val + + if ((val == valBounce) && (val != buttonState) && (val == HIGH)) { // check if the button is pressed + lightMode = 1 -lightMode ; // Now with DeBounce + } + if (lightMode) { // Check if light mode is TRUE == 1 or FALSE == 0 + delay(50); // Keep the LED LOW for 50ms + digitalWrite(LED,HIGH); // Blink the LED + delay(50); // Keep the LED HIGH for 50ms + // digitalWrite(LED,LOW); // We don't need to turn it LOW + // It will go off anyway later + } + + digitalWrite(LED,LOW); // Almayes turn off the LED + // As lightMode is FALSE == 0 turn the LED off + // Turn it off + buttonState = val; // save the new state in our variable +} + + + + + + + + diff --git a/basic/button_presses_LED_deBounce_7/button_presses_LED_deBounce_7.ino b/basic/button_presses_LED_deBounce_7/button_presses_LED_deBounce_7.ino new file mode 100644 index 0000000..1e0e203 --- /dev/null +++ b/basic/button_presses_LED_deBounce_7/button_presses_LED_deBounce_7.ino @@ -0,0 +1,35 @@ +/* + * Alternating switch + */ + +int switchPin = 2; // switch is connected to pin 2 +int val; // variable for reading the pin status +int valBounce ; // variable for debouncing +int buttonState; // variable to hold the last button state +int lightMode = 0; // State of the light +int LED = 12; + +void setup() { + pinMode(switchPin, INPUT_PULLUP); // Set the switch pin as input + pinMode(LED, OUTPUT); + + buttonState = digitalRead(switchPin); // read the initial state + +} + + +void loop(){ + val = digitalRead(switchPin); // read input value and store it in val + delay(10); // Debounce + valBounce = digitalRead(switchPin); // read input value and store it in val + + if ((val == valBounce) && (val != buttonState) && (val == HIGH)) { // check if the button is pressed + lightMode = 1 -lightMode ; // Now with DeBounce + } + digitalWrite(LED,lightMode); + buttonState = val; // save the new state in our variable +} + + + + diff --git a/basic/button_presses_count_down_5/button_presses_count_down_5.ino b/basic/button_presses_count_down_5/button_presses_count_down_5.ino new file mode 100644 index 0000000..7e43837 --- /dev/null +++ b/basic/button_presses_count_down_5/button_presses_count_down_5.ino @@ -0,0 +1,36 @@ +/* + * Alternating switch + */ + +int switchPin = 2; // switch is connected to pin 2 +int val; // variable for reading the pin status +int buttonState; // variable to hold the last button state +int buttonPresses = 10; // Counter for the button + +void setup() { + pinMode(switchPin, INPUT_PULLUP); // Set the switch pin as input + + Serial.begin(9600); // Set up serial communication at 9600bps + buttonState = digitalRead(switchPin); // read the initial state + Serial.println("Don not press the button! :P "); +} + + +void loop(){ + val = digitalRead(switchPin); // read input value and store it in val + delay(100); // Debounce + if ((val != buttonState) && (val == HIGH)) { // check if the button is pressed + buttonPresses-- ; + Serial.print("Press it an other "); + Serial.print(buttonPresses); + Serial.println(" times."); + } + if (buttonPresses == 0) { + Serial.println("----- > ExplOdE! <------"); + // Serial.flush(); // Print out the whole serial buffer + // exit(0); // Exit the sketch + } + buttonState = val; // save the new state in our variable +} + + diff --git a/basic/button_presses_counter_AND_4/button_presses_counter_AND_4.ino b/basic/button_presses_counter_AND_4/button_presses_counter_AND_4.ino new file mode 100644 index 0000000..6f5c373 --- /dev/null +++ b/basic/button_presses_counter_AND_4/button_presses_counter_AND_4.ino @@ -0,0 +1,30 @@ +/* + * Alternating switch + */ + +int switchPin = 2; // switch is connected to pin 2 +int val; // variable for reading the pin status +int buttonState; // variable to hold the last button state +int buttonPresses = 0; // Counter for the button + +void setup() { + pinMode(switchPin, INPUT_PULLUP); // Set the switch pin as input + + Serial.begin(9600); // Set up serial communication at 9600bps + buttonState = digitalRead(switchPin); // read the initial state +} + + +void loop(){ + val = digitalRead(switchPin); // read input value and store it in val + delay(100); // Debounce + if ((val != buttonState) && (val == HIGH)) { // check if the button is pressed + buttonPresses++ ; + Serial.print("Button has been pressed "); + Serial.print(buttonPresses); + Serial.println(" times."); + } + buttonState = val; // save the new state in our variable +} + + diff --git a/basic/button_state_3/button_state_3.ino b/basic/button_state_3/button_state_3.ino new file mode 100644 index 0000000..de29a13 --- /dev/null +++ b/basic/button_state_3/button_state_3.ino @@ -0,0 +1,29 @@ +/* + * Alternating switch + */ + +int switchPin = 2; // switch is connected to pin 2 +int val; // variable for reading the pin status +int buttonState; // variable to hold the last button state + +void setup() { + pinMode(switchPin, INPUT); // Set the switch pin as input + + Serial.begin(9600); // Set up serial communication at 9600bps + buttonState = digitalRead(switchPin); // read the initial state +} + + +void loop(){ + val = digitalRead(switchPin); // read input value and store it in val + + if (val != buttonState) { // the button state has changed! + if (val == LOW) { // check if the button is pressed + Serial.println("Button just pressed"); + } else { // the button is -not- pressed... + Serial.println("Button just released"); + } + } + + buttonState = val; // save the new state in our variable +} diff --git a/basic/data_types_bin_hex_transformation_serial/data_types_bin_hex_transformation_serial.ino b/basic/data_types_bin_hex_transformation_serial/data_types_bin_hex_transformation_serial.ino new file mode 100644 index 0000000..a02701e --- /dev/null +++ b/basic/data_types_bin_hex_transformation_serial/data_types_bin_hex_transformation_serial.ino @@ -0,0 +1,40 @@ +void setup() { + // put your setup code here, to run once: + Serial.begin(9600); + +} + +void loop() { + + transforma(5); // Leggete i risultati con [CTR]+[SHIFT]+M + transforma(255); + + Serial.flush() ; + exit(0); // Termina l'esecuzione +} + +// Ignorate pure il resto del listato! + +/* Transforma + + Scrive su seriale il valore della variabile a + trasformandolo in binario e esadecimale + */ + +void transforma(int var) { + Serial.print("Valore in decimanle = "); + Serial.println(var); // Serial.println(a, DEC); + + Serial.print("Valore in binario = "); + Serial.println(var,BIN); + + Serial.print("Valore in esadecimanle = "); + Serial.println(var,HEX); + + Serial.println(); +} + + + + + diff --git a/basic/led_PWM_simple/led_PWM_simple.ino b/basic/led_PWM_simple/led_PWM_simple.ino new file mode 100644 index 0000000..45d3ff9 --- /dev/null +++ b/basic/led_PWM_simple/led_PWM_simple.ino @@ -0,0 +1,27 @@ +/* + Adafruit Arduino - Lesson 3. RGB LED + */ + +int redPin = 11; +int greenPin = 10; +int bluePin = 9; +int c = 0; + +//uncomment this line if using a Common Anode LED +//#define COMMON_ANODE + +void setup() +{ + pinMode(redPin, OUTPUT); + +} + +void loop() +{ + for ( c = 0; c < 255 ; c++) { + analogWrite(redPin, c) ; + delay(5 ); + } +} + + diff --git a/basic/simplest_pwm_byte/simplest_pwm_byte.ino b/basic/simplest_pwm_byte/simplest_pwm_byte.ino new file mode 100644 index 0000000..fc7658d --- /dev/null +++ b/basic/simplest_pwm_byte/simplest_pwm_byte.ino @@ -0,0 +1,27 @@ +/* + Fade + + This example shows how to fade an LED on pin 9 + using the analogWrite() function. + + This example code is in the public domain. + */ + +byte led = 9 ; // the pin that the LED is attached to + +byte brightness = 0; // how bright the LED is + +// the setup routine runs once when you press reset: +void setup() { + // declare pin 9 to be an output: + pinMode(led, OUTPUT); +} + +// the loop routine runs over and over again forever: +void loop() { + // set the brightness of pin 9: + analogWrite(led, brightness++); + delay(10); +} + + diff --git a/basic/switch_LED_2/switch_LED_2.ino b/basic/switch_LED_2/switch_LED_2.ino new file mode 100644 index 0000000..8141ad0 --- /dev/null +++ b/basic/switch_LED_2/switch_LED_2.ino @@ -0,0 +1,24 @@ +/* + * Switch and LED test program + */ + +int ledPin = 12; // LED is connected to pin 12 +int switchPin = 2; // switch is connected to pin 2 +int val; // variable for reading the pin status + + +void setup() { + pinMode(ledPin, OUTPUT); // Set the LED pin as output + pinMode(switchPin, INPUT); // Set the switch pin as input +} + + +void loop(){ + val = digitalRead(switchPin); // read input value and store it in val + if (val == LOW) { // check if the button is pressed + digitalWrite(ledPin, HIGH); // turn LED on + } + if (val == HIGH) { // check if the button is not pressed + digitalWrite(ledPin, LOW); // turn LED off + } +} diff --git a/basic/switch_test_serial/switch_test_serial.ino b/basic/switch_test_serial/switch_test_serial.ino new file mode 100644 index 0000000..9fa2b7d --- /dev/null +++ b/basic/switch_test_serial/switch_test_serial.ino @@ -0,0 +1,19 @@ +/* + * Switch test program + */ + +int switchPin = 2; // Switch connected to digital pin 2 + +void setup() // run once, when the sketch starts +{ + Serial.begin(9600); // set up Serial library at 9600 bps + pinMode(switchPin, INPUT); // sets the digital pin as input to read switch +} + + +void loop() // run over and over again +{ + Serial.print("Read switch input: "); + Serial.println(digitalRead(switchPin)); // Read the pin and display the value + delay(200); +} diff --git a/basic_programming/blink_with_functions/blink_with_functions.ino b/basic_programming/blink_with_functions/blink_with_functions.ino new file mode 100644 index 0000000..f798b46 --- /dev/null +++ b/basic_programming/blink_with_functions/blink_with_functions.ino @@ -0,0 +1,52 @@ +/* + Blink con funzioni. + + Le funzioni sono una sequenza di istruzione raggruppate appunto in un a funzione. + Le funzioni possono accettare argomenti e avere questi pre-impostati a valori di default se omessi. + Le funzioni possono limitarsi a svolgere istruzionioppure elaborare valori restituendo un risultato. + + */ + +// Pin 13 has an LED connected on most Arduino boards. +// give it a name: +int led = 13; +void lunga() { + digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) + delay(1000); // wait for a second + digitalWrite(led, LOW); // turn the LED off by making the voltage LOW + delay(1000); // wait for a second +} + +void breve() { + digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) + delay(200); // wait for a second + digitalWrite(led, LOW); // turn the LED off by making the voltage LOW + delay(1000); // wait for a second + +} + +void varia(int a = 1000) { // Varia has a default value, the user can override it with an argument + digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) + delay(a); // wait for a second + digitalWrite(led, LOW); // turn the LED off by making the voltage LOW + delay(1000); // wait for a second + +} + +// the setup routine runs once when you press reset: +void setup() { + // initialize the digital pin as an output. + pinMode(led, OUTPUT); +} + +// the loop routine runs over and over again forever: +void loop() { + lunga() ; + lunga() ; + breve(); + breve(); + varia(3000); + + +} + diff --git a/basic_programming/conditional_test/head_tails_ino/head_tails_ino.ino b/basic_programming/conditional_test/head_tails_ino/head_tails_ino.ino new file mode 100644 index 0000000..7587967 --- /dev/null +++ b/basic_programming/conditional_test/head_tails_ino/head_tails_ino.ino @@ -0,0 +1,61 @@ +/* + Head tails + Generates a random number in order to simulate a coin toss. + + + Phisical LEDS and serial debug. + + This example code is in the public domain. + */ + +// Pin 13 has an LED connected on most Arduino boards. +// give it a name: +const int head = 13 ; // LED for HEAD +const int tail = 12 ; // LEAD for Tails +const int PAUSE = 1000 ; +const int REST = 50 ; +long randomNumber = 0L; // Use the "L" to tell compiler it's a long data type, not an int. +int hCount = 0; +int tCount = 0; +int runs = 0 ; + +// the setup routine runs once when you press reset: +void setup() { + // initialize the digital pin as an output. + pinMode(head, OUTPUT); + pinMode(tail, OUTPUT); + randomSeed(analogRead(0)); // Random initializer + Serial.begin(9600); + Serial.println("Initializing random sequence, please wait for results."); +} + +// the loop routine runs over and over again forever: +void loop() { + randomNumber = random(); + digitalWrite(head, LOW); + digitalWrite(tail, LOW); + delay(REST); // wait a bit + if (randomNumber % 2 == 1) { + digitalWrite(head, HIGH);// turn the LED on ON + hCount++ ; + } + else { + digitalWrite(tail, HIGH);// turn the LED ON + tCount++ ; + } + + delay(PAUSE); // Long pause + runs++; + + if (runs % 10 == 0) { // Each 10 runs print a summary to serial + Serial.print("Results after more 10 runs, for a total of: "); + Serial.println(runs); + Serial.print("Tails: \t") ; + Serial.println(tCount); + Serial.print("Heads: \t"); + Serial.println(hCount); + } +} + + + diff --git a/basic_programming/leap_year_functions/leap_year_functions.ino b/basic_programming/leap_year_functions/leap_year_functions.ino new file mode 100644 index 0000000..befac46 --- /dev/null +++ b/basic_programming/leap_year_functions/leap_year_functions.ino @@ -0,0 +1,80 @@ +/** + * Program: find out is the user typed in a leap year. The code assumes + * the user is not an idiot and only types in numbers that are a valid + * year. + * Author: Dr. Purdum, Aug. 7, 2012 + **/ +void setup() +{ + Serial.begin(9600); +} +void loop() +{ + if (Serial.available() > 0) { + int bufferCount; + int year; + char myData[20]; + bufferCount = ReadLine(myData); + year = atoi(myData); + Serial.print("Year: "); + Serial.print(year); + if (IsLeapYear(year)) { + Serial.print(" is "); + } + else { + Serial.print(" is not "); + } + Serial.println("a leap year"); + } +} +// Convert to int +/***** + * Purpose: Determine if a given year is a leap year + * Parameters: + * int yr + * The year to test + * Return value: + * int + * 1 if the year is a leap year, 0 otherwise + *****/ +int IsLeapYear(int yr) +{ + if (yr % 4 == 0 && yr % 100 != 0 || yr % 400 == 0) { + return 1; // It is a leap year + } + else { + return 0; + // not a leap year + } +} +/***** + * Purpose: Read data from serial port until a newline character is read ('\n') + * Parameters: + * char str[] + * character array that will be treated as a nul-terminated string + * Return value: + * int + * the number of characters read for the string + * CAUTION: This method will sit here forever if no input is read from the serial + * port and no newline character is entered. + ****/ +int ReadLine(char str[]) +{ + char c; + int index = 0; + while (true) { + if (Serial.available() > 0) { + c = Serial.read(); + if (c != '\n') { + str[index++] = c; + } + else { + str[index] = '\0'; // null termination character + break; + } + } + } + return index; +} + + diff --git a/basic_programming/loops/loop_match_2_for_loop/loop_match_2_for_loop.ino b/basic_programming/loops/loop_match_2_for_loop/loop_match_2_for_loop.ino new file mode 100644 index 0000000..22fe8bf --- /dev/null +++ b/basic_programming/loops/loop_match_2_for_loop/loop_match_2_for_loop.ino @@ -0,0 +1,64 @@ +/* Exercise 2, with a WHILE loop + Test a random number agains a value + Light a led in case + Light the other LED if a run of 255 test has gone + Log the results (if success) trough serialport + */ + +// Data structure + +const byte GREEN = 13 ; // LED for found value +const byte RED = 12 ; // LEAD for restart + +const int TARGET = 200 ; +long randomNumber = 0L; + +// Staff +const int WAIT = 1000 ; +const int REST = 10 ; +byte count = 0 ; +const byte MAXRUN = 10 ; +byte totalRun = 0 ; + +void setup() { + pinMode(RED,OUTPUT); + pinMode(GREEN,OUTPUT); + // Serial stuff + Serial.begin(9600); + Serial.println("Initializing random sequence, please wait for results."); + + // Random stuff + randomSeed(analogRead(0)); // Random initializer + +} + +void loop() { // put your main code here, to run repeatedly: + digitalWrite(GREEN, LOW); + digitalWrite(RED, LOW); + // Serial.println(count); + + for (count == 0; count < 255; count++ , delay(REST)) { + randomNumber = random(0,255); //Randoom value generated + if (randomNumber == TARGET) { // When we catch the value + Serial.print("--> Match found! Counter was at: "); // serial message + Serial.println(count); + digitalWrite(GREEN, HIGH); + delay(WAIT * 5); + digitalWrite(GREEN, LOW); + count++ ; + } + } + + Serial.println("Counter resetted."); // serial staff + digitalWrite(RED, HIGH); + delay(WAIT); + count++ ; + totalRun++ ; + if (totalRun == MAXRUN) { + Serial.println("10 runs done, exit program."); + digitalWrite(RED, HIGH); + delay(WAIT); + exit(0); + } +} + diff --git a/basic_programming/loops/loop_match_2_while_loop/loop_match_2_while_loop.ino b/basic_programming/loops/loop_match_2_while_loop/loop_match_2_while_loop.ino new file mode 100644 index 0000000..88c515c --- /dev/null +++ b/basic_programming/loops/loop_match_2_while_loop/loop_match_2_while_loop.ino @@ -0,0 +1,67 @@ +/* Exercise 2, with a WHILE loop + Test a random number agains a value + Light a led in case + Light the other LED if a run of 255 test has gone + Log the results (if success) trough serialport + */ + +// Data structure + +const byte GREEN = 13 ; // LED for found value +const byte RED = 12 ; // LEAD for restart + +const int TARGET = 200 ; +long randomNumber = 0L; + +// Staff +const int WAIT = 1000 ; +const int REST = 10 ; +byte count = 0 ; +const byte MAXRUN = 10 ; +byte totalRun = 0 ; + +void setup() { + pinMode(RED,OUTPUT); + pinMode(GREEN,OUTPUT); + // Serial stuff + Serial.begin(9600); + Serial.println("Initializing random sequence, please wait for results."); + + // Random stuff + randomSeed(analogRead(0)); // Random initializer + +} + +void loop() { // put your main code here, to run repeatedly: + digitalWrite(GREEN, LOW); + digitalWrite(RED, LOW); + // Serial.println(count); + + while (count < 255) { + randomNumber = random(0,255); //Randoom value generated + if (randomNumber == TARGET) { // When we catch the value + Serial.print("--> Match found! Counter was at: "); // serial message + Serial.println(count); + digitalWrite(GREEN, HIGH); + delay(WAIT); + count++ ; + } + //Serial.println(count); + count++ ; + delay(REST); + } + + + Serial.println("Counter resetted."); // serial staff + digitalWrite(RED, HIGH); + delay(WAIT); + count++ ; + totalRun++ ; + if (totalRun == MAXRUN) { + Serial.println("10 runs done, exit program."); + digitalWrite(RED, HIGH); + delay(WAIT); + exit(0); + } +} + diff --git a/basic_programming/loops/switch_loop_README b/basic_programming/loops/switch_loop_README new file mode 100644 index 0000000..8143081 --- /dev/null +++ b/basic_programming/loops/switch_loop_README @@ -0,0 +1,6 @@ +Use examples provided with arduino: + +EDIT -> Example -> Control -> ... + +- SwitchCase: check the range of a (mapped) analog input with a switch loop. +- SwitchCase2: SerialInput to light up a bunch of LEDS. diff --git a/basic_programming/pointers_c/pointers/pointers.ino b/basic_programming/pointers_c/pointers/pointers.ino new file mode 100644 index 0000000..b148b70 --- /dev/null +++ b/basic_programming/pointers_c/pointers/pointers.ino @@ -0,0 +1,45 @@ + +int *ptrNumber ; +void setup() { + // put your setup code here, to run once: + Serial.begin(9600); + +} + +void loop() { + int number = 5; + + + Serial.print("number is "); + Serial.println(number); + Serial.print("The lvalue for number is: "); + Serial.println((long) &number, DEC); + + Serial.print("---- Pointer was "); + Serial.println(*ptrNumber); + Serial.print("The lvalue for ptrNumber is: "); + Serial.println((long) &ptrNumber, DEC); + Serial.print(" and the rvalue is "); + Serial.println((long) ptrNumber, DEC); + + ptrNumber = &number ; + Serial.println("Assigned!"); + + Serial.print("===== Pointer was "); + Serial.println(*ptrNumber); + Serial.print("The lvalue for ptrNumber is: "); + Serial.println((long) &ptrNumber, DEC); + Serial.print(" and the rvalue is "); + Serial.println((long) ptrNumber, DEC); + + *ptrNumber = 6 ; + Serial.print("**** Pointer value is: "); + Serial.println(*ptrNumber); + Serial.println(number); + + Serial.flush(); + exit(0); + +} + + diff --git a/basic_programming/pointers_c/pointers_3_resetting_before_use/pointers_3_resetting_before_use.ino b/basic_programming/pointers_c/pointers_3_resetting_before_use/pointers_3_resetting_before_use.ino new file mode 100644 index 0000000..02642eb --- /dev/null +++ b/basic_programming/pointers_c/pointers_3_resetting_before_use/pointers_3_resetting_before_use.ino @@ -0,0 +1,49 @@ +/* +Purpose: Illustrate pointer arithmetic + Dr. Purdum, August 20, 2012 + */ +#include +void setup() { + Serial.begin(9600); +} +void loop() { + char buffer[50]; + char *ptr; + int i; + int length; + + strcpy(buffer, "When in the course of human events"); + ptr = buffer; + length = strlen(buffer); + Serial.print("The lvalue for ptr is: "); + Serial.print((unsigned int)&ptr); + Serial.print(" and the rvalue is "); + Serial.println((unsigned int)ptr); + while (*ptr) { + Serial.print(*ptr++); // This actually incrementa ptr* + 34 + } + Serial.println(""); + + Serial.println("Lenght of the string is: "); + Serial.println(length); + Serial.println(""); + + + // ptr = ptr - length ; // Whis would roll back ptr + for (i = 0; i < length; i++) { + Serial.print(*(ptr + i)); + // Serial.print(*(ptr + i- lenght)); // ptr is one lenght up ahead + } + // ptr = buffer ; // Right thing to do: reset the pointer before use + // for (i = 0; i < length; i++) { + // Serial.print(*(ptr + i)) + + + Serial.flush(); + // Make sure all the data is sent... + exit(0); +} + + + + diff --git a/basic_programming/pointers_c/pointers_function_scope_break/pointers_function_scope_break.ino b/basic_programming/pointers_c/pointers_function_scope_break/pointers_function_scope_break.ino new file mode 100644 index 0000000..1a0ad0a --- /dev/null +++ b/basic_programming/pointers_c/pointers_function_scope_break/pointers_function_scope_break.ino @@ -0,0 +1,41 @@ +int *ptr; // no rvalue + +void setup() { + // put your setup code here, to run once: + Serial.begin(9600); + +} + +void loop() { + int num =5; + ptr = &num ; + + transforma(num); // Leggete i risultati con [CTR]+[SHIFT]+M + Serial.println(num); + + Serial.flush() ; + exit(0); // Termina l'esecuzione +} + +// Ignorate pure il resto del listato! + +/* Transforma + + Scrive su seriale il valore della variabile a + trasformandolo in binario e esadecimale + */ + +void transforma(int var) { + Serial.print("Valore della variabile = "); + Serial.print(var); + *ptr = 12 ; // Num is outside the scope of this function + // but a pointer can get there + + + Serial.println(); +} + + + + + diff --git a/basic_programming/pointers_c/structure_pointers_function_stack_4/structure_pointers_function_stack_4.ino b/basic_programming/pointers_c/structure_pointers_function_stack_4/structure_pointers_function_stack_4.ino new file mode 100644 index 0000000..2ebc909 --- /dev/null +++ b/basic_programming/pointers_c/structure_pointers_function_stack_4/structure_pointers_function_stack_4.ino @@ -0,0 +1,47 @@ + + +struct RGB { + byte r; + byte g; + byte b; +} +myLED ; + +void setup() { + Serial.begin(9600); + // Serial link to PC +} +void loop() { + myLED = { + 100,200,255 } + ; + + // Serial.println(myLED.r) ; + + illumina(&myLED); + rossa(&myLED); + Serial.println(); + illumina(&myLED); + + Serial.flush(); + exit(0); +} + +void illumina(struct RGB *tempLED) { // Function with a pointer + Serial.println((*tempLED).r) ; // This does not waste STACK space + Serial.println((*tempLED).g) ; // Note: indirect operator * has lower priority + Serial.println(tempLED->b) ; // than dot . operator , so the parentheses + // That is the dereference -> operator +} + +struct RGB rossa(struct RGB *temp) { // Function with a pointer: + // This can change directly the original value without the need + // to reassign as in: myLED = rossa(myLED) + (*temp).r = 255 ; + //return *temp; +} + + + + + diff --git a/hardware/Infrared_controller/IR_reading_mapped/IR_reading_mapped.ino b/hardware/Infrared_controller/IR_reading_mapped/IR_reading_mapped.ino new file mode 100644 index 0000000..ae7e8b2 --- /dev/null +++ b/hardware/Infrared_controller/IR_reading_mapped/IR_reading_mapped.ino @@ -0,0 +1,58 @@ +// Remote infrared control +// http://www.instructables.com/id/Arduino-Infrared-Remote-tutorial/ + +// Requires library: https://github.com/shirriff/Arduino-IRremote +// Numbers 1->6 mapped with a switch construct +// +// Warning: DO NOT coonect the IR sensor to the Arduino without +// the PCB module + +#include +#include + +int RECV_PIN = 11; +IRrecv irrecv(RECV_PIN); +decode_results results; + +void setup() +{ + Serial.begin(9600); + irrecv.enableIRIn(); // Start the receiver +} + +void loop() +{ + if (irrecv.decode(&results)) + { + switch (results.value) { + case 0xFF30CF: + Serial.println("Uno"); + break; + case 0xFF18E7: + Serial.println("Due"); + break; + case 0xFF7A85: + Serial.println("Tre"); + break; + case 0xFF10EF: + Serial.println("Quattro"); + break; + case 0xFF38C7: + Serial.println("Cinque"); + break; + case 0xFF5AA5: + Serial.println("Sei"); + break; + case 0xFFFFFFFF: + Serial.println("Repeat"); + } + //Serial.println(results.value, HEX); // Debug: show value + irrecv.resume(); // Receive the next value + + } +} + + + + + diff --git a/hardware/Infrared_controller/basic_IR_reading_0/basic_IR_reading_0.ino b/hardware/Infrared_controller/basic_IR_reading_0/basic_IR_reading_0.ino new file mode 100644 index 0000000..380f8ff --- /dev/null +++ b/hardware/Infrared_controller/basic_IR_reading_0/basic_IR_reading_0.ino @@ -0,0 +1,33 @@ +// Remote infrared control +// http://www.instructables.com/id/Arduino-Infrared-Remote-tutorial/ + +// Requires library: https://github.com/shirriff/Arduino-IRremote +// Warning: DO NOT coonect the IR sensor to the Arduino without +// the PCB module + +#include +#include + +int RECV_PIN = 11; +IRrecv irrecv(RECV_PIN); +decode_results results; + +void setup() +{ + Serial.begin(9600); + irrecv.enableIRIn(); // Start the receiver +} + +void loop() +{ + if (irrecv.decode(&results)) + { + Serial.println(results.value, HEX); + if (results.value == 0xFF30CF) { + Serial.println("Uno"); + } + irrecv.resume(); // Receive the next value + } +} + + diff --git a/hardware/LCD_2x16/LCD_2x16.ino b/hardware/LCD_2x16/LCD_2x16.ino new file mode 100644 index 0000000..e11a48c --- /dev/null +++ b/hardware/LCD_2x16/LCD_2x16.ino @@ -0,0 +1,20 @@ +#include + +// initialize the library with the numbers of the interface pins +LiquidCrystal lcd(12, 11, 5, 4, 3, 2); + +void setup() { + // set up the LCD's number of columns and rows: + lcd.begin(16, 2); + // Print a message to the LCD. + lcd.print("Funziona benone!"); +} + +void loop() { + // set the cursor to column 0, line 1 + // (note: line 1 is the second row, since counting begins with 0): + lcd.setCursor(0, 1); + // print the number of seconds since reset: + lcd.print(millis()/1000); +} + diff --git a/hardware/LCD_display_4x20/LCD_display_4x20.ino b/hardware/LCD_display_4x20/LCD_display_4x20.ino new file mode 100644 index 0000000..4dce1f9 --- /dev/null +++ b/hardware/LCD_display_4x20/LCD_display_4x20.ino @@ -0,0 +1,58 @@ +/* + LiquidCrystal Library - Hello World + + Demonstrates the use a 16x2 LCD display. The LiquidCrystal + library works with all LCD displays that are compatible with the + Hitachi HD44780 driver. There are many of them out there, and you + can usually tell them by the 16-pin interface. + + This sketch prints "Hello World!" to the LCD + and shows the time. + + The circuit: + * LCD RS pin to digital pin 12 + * LCD Enable pin to digital pin 11 + * LCD D4 pin to digital pin 5 + * LCD D5 pin to digital pin 4 + * LCD D6 pin to digital pin 3 + * LCD D7 pin to digital pin 2 + * LCD R/W pin to ground + * 10K resistor: + * ends to +5V and ground + * wiper to LCD VO pin (pin 3) + + Library originally added 18 Apr 2008 + by David A. Mellis + library modified 5 Jul 2009 + by Limor Fried (http://www.ladyada.net) + example added 9 Jul 2009 + by Tom Igoe + modified 22 Nov 2010 + by Tom Igoe + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/LiquidCrystal + */ + +// include the library code: +#include + +// initialize the library with the numbers of the interface pins +LiquidCrystal lcd(7, 8, 9, 10, 11, 12); + +void setup() { + // set up the LCD's number of columns and rows: + lcd.begin(20, 4); + // Print a message to the LCD. + lcd.print("Schermo LCD a 4righe per 20 caratteri. Funziona anche bene."); +} + +void loop() { + // set the cursor to column 0, line 1 + // (note: line 1 is the second row, since counting begins with 0): + lcd.setCursor(5, 4); + // print the number of seconds since reset: + //lcd.print(millis()/1000); +} + diff --git a/hardware/ethernet/README b/hardware/ethernet/README new file mode 100644 index 0000000..ac494cc --- /dev/null +++ b/hardware/ethernet/README @@ -0,0 +1,9 @@ +Info +==== + + +- https://hwstartup.wordpress.com/2013/03/25/how-to-connect-an-arduino-to-the-internet-for-10/ +- http://www.homautomation.org/2014/10/27/how-to-choose-the-right-library-to-add-ethernet-enc28j60-to-your-arduino/ + +This NIC should also work with KSduino: +- http://blog.ksduino.org/post/37480815224/welcome-to-ksduino diff --git a/hardware/ethernet/ethernet_analog_read/ethernet_analog_read.ino b/hardware/ethernet/ethernet_analog_read/ethernet_analog_read.ino new file mode 100644 index 0000000..35314dd --- /dev/null +++ b/hardware/ethernet/ethernet_analog_read/ethernet_analog_read.ino @@ -0,0 +1,69 @@ +/* + Analog read + + Read a value from a Arduino sensor and publish + it in a web page. + + Note: you can set up the NIC with DHCP or static address + + */ + +#include + +// ethernet interface mac address, must be unique on the LAN +static byte mymac[] = { + 0x74,0x69,0x69,0x2D,0x30,0x31 }; +//static byte myip[] = { 192,168,0,100 }; + +byte Ethernet::buffer[500]; +BufferFiller bfill; + +// Analog vars: +int analogSensor = A0; +int sensorRead = 0; + +void setup () { + /* Static IP code + if (ether.begin(sizeof Ethernet::buffer, mymac) == 0) + Serial.println( "Failed to access Ethernet controller"); + ether.staticSetup(myip); + + + + */ + // DHC code + Serial.begin(57600); + Serial.println("\n[getDHCPandDNS]"); + if (ether.begin(sizeof Ethernet::buffer, mymac) == 0) + Serial.println( "Failed to access Ethernet controller"); + + if (!ether.dhcpSetup()) + Serial.println("DHCP failed"); +} + +static word homePage() { + bfill = ether.tcpOffset(); + bfill.emit_p(PSTR( + "HTTP/1.0 200 OK\r\n" + "Content-Type: text/html\r\n" + "Pragma: no-cache\r\n" + "\r\n" + "" + "Arduino WebServer" + "

Arduino analog Read

" + "

Analog Value from Arduino: $D

"), + sensorRead ); + return bfill.position(); +} + +void loop () { + sensorRead = analogRead(analogSensor); + + word len = ether.packetReceive(); + word pos = ether.packetLoop(len); + + if (pos) // check if valid tcp data is received + ether.httpServerReply(homePage()); // send web page data +} + + diff --git a/hardware/ethernet/ethernet_hello_world/ethernet_hello_world.ino b/hardware/ethernet/ethernet_hello_world/ethernet_hello_world.ino new file mode 100644 index 0000000..0b81959 --- /dev/null +++ b/hardware/ethernet/ethernet_hello_world/ethernet_hello_world.ino @@ -0,0 +1,38 @@ +// This is a demo of the RBBB running as webserver with the Ether Card +// Simple Hello World + +#include + +// ethernet interface mac address, must be unique on the LAN +static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 }; +static byte myip[] = { 192,168,0,100 }; + +byte Ethernet::buffer[500]; +BufferFiller bfill; + +void setup () { + if (ether.begin(sizeof Ethernet::buffer, mymac) == 0) + Serial.println( "Failed to access Ethernet controller"); + ether.staticSetup(myip); +} + +static word homePage() { + bfill = ether.tcpOffset(); + bfill.emit_p(PSTR( + "HTTP/1.0 200 OK\r\n" + "Content-Type: text/html\r\n" + "Pragma: no-cache\r\n" + "\r\n" + "" + "RBBB server" + "

Hello World 2

")); + return bfill.position(); +} + +void loop () { + word len = ether.packetReceive(); + word pos = ether.packetLoop(len); + + if (pos) // check if valid tcp data is received + ether.httpServerReply(homePage()); // send web page data +} diff --git a/hardware/ethernet/ethernet_time/ethernet_time.ino b/hardware/ethernet/ethernet_time/ethernet_time.ino new file mode 100644 index 0000000..8fabce3 --- /dev/null +++ b/hardware/ethernet/ethernet_time/ethernet_time.ino @@ -0,0 +1,48 @@ +//#include +//#include +//#include + +// This is a demo of the RBBB running as webserver with the Ether Card +// 2010-05-28 http://opensource.org/licenses/mit-license.php + // https://hwstartup.wordpress.com/2013/03/25/how-to-connect-an-arduino-to-the-internet-for-10/ + +#include + +// ethernet interface mac address, must be unique on the LAN +static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 }; +static byte myip[] = { 192,168,0,100 }; + +byte Ethernet::buffer[500]; +BufferFiller bfill; + +void setup () { + if (ether.begin(sizeof Ethernet::buffer, mymac) == 0) + Serial.println( "Failed to access Ethernet controller"); + ether.staticSetup(myip); +} + +static word homePage() { + long t = millis() / 1000; + word h = t / 3600; + byte m = (t / 60) % 60; + byte s = t % 60; + bfill = ether.tcpOffset(); + bfill.emit_p(PSTR( + "HTTP/1.0 200 OK\r\n" + "Content-Type: text/html\r\n" + "Pragma: no-cache\r\n" + "\r\n" + "" + "RBBB server" + "

$D$D:$D$D:$D$D

"), + h/10, h%10, m/10, m%10, s/10, s%10); + return bfill.position(); +} + +void loop () { + word len = ether.packetReceive(); + word pos = ether.packetLoop(len); + + if (pos) // check if valid tcp data is received + ether.httpServerReply(homePage()); // send web page data +} diff --git a/hardware/gyro_6axis/gyro_6axis.ino b/hardware/gyro_6axis/gyro_6axis.ino new file mode 100644 index 0000000..c65f0d5 --- /dev/null +++ b/hardware/gyro_6axis/gyro_6axis.ino @@ -0,0 +1,375 @@ +// 6 axis gyro demo +// Beware: this does not work on old Uno, requires a r3. + +// I2C device class (I2Cdev) demonstration Arduino sketch for MPU6050 class using DMP (MotionApps v2.0) +// 6/21/2012 by Jeff Rowberg +// Updates should (hopefully) always be available at https://github.com/jrowberg/i2cdevlib +// +// Changelog: +// 2013-05-08 - added seamless Fastwire support +// - added note about gyro calibration +// 2012-06-21 - added note about Arduino 1.0.1 + Leonardo compatibility error +// 2012-06-20 - improved FIFO overflow handling and simplified read process +// 2012-06-19 - completely rearranged DMP initialization code and simplification +// 2012-06-13 - pull gyro and accel data from FIFO packet instead of reading directly +// 2012-06-09 - fix broken FIFO read sequence and change interrupt detection to RISING +// 2012-06-05 - add gravity-compensated initial reference frame acceleration output +// - add 3D math helper file to DMP6 example sketch +// - add Euler output and Yaw/Pitch/Roll output formats +// 2012-06-04 - remove accel offset clearing for better results (thanks Sungon Lee) +// 2012-06-01 - fixed gyro sensitivity to be 2000 deg/sec instead of 250 +// 2012-05-30 - basic DMP initialization working + +/* ============================================ +I2Cdev device library code is placed under the MIT license +Copyright (c) 2012 Jeff Rowberg + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +=============================================== +*/ + +// I2Cdev and MPU6050 must be installed as libraries, or else the .cpp/.h files +// for both classes must be in the include path of your project +#include "I2Cdev.h" + +#include "MPU6050_6Axis_MotionApps20.h" +//#include "MPU6050.h" // not necessary if using MotionApps include file + +// Arduino Wire library is required if I2Cdev I2CDEV_ARDUINO_WIRE implementation +// is used in I2Cdev.h +#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE + #include "Wire.h" +#endif + +// class default I2C address is 0x68 +// specific I2C addresses may be passed as a parameter here +// AD0 low = 0x68 (default for SparkFun breakout and InvenSense evaluation board) +// AD0 high = 0x69 +MPU6050 mpu; +//MPU6050 mpu(0x69); // <-- use for AD0 high + +/* ========================================================================= + NOTE: In addition to connection 3.3v, GND, SDA, and SCL, this sketch + depends on the MPU-6050's INT pin being connected to the Arduino's + external interrupt #0 pin. On the Arduino Uno and Mega 2560, this is + digital I/O pin 2. + * ========================================================================= */ + +/* ========================================================================= + NOTE: Arduino v1.0.1 with the Leonardo board generates a compile error + when using Serial.write(buf, len). The Teapot output uses this method. + The solution requires a modification to the Arduino USBAPI.h file, which + is fortunately simple, but annoying. This will be fixed in the next IDE + release. For more info, see these links: + + http://arduino.cc/forum/index.php/topic,109987.0.html + http://code.google.com/p/arduino/issues/detail?id=958 + * ========================================================================= */ + + + +// uncomment "OUTPUT_READABLE_QUATERNION" if you want to see the actual +// quaternion components in a [w, x, y, z] format (not best for parsing +// on a remote host such as Processing or something though) +//#define OUTPUT_READABLE_QUATERNION + +// uncomment "OUTPUT_READABLE_EULER" if you want to see Euler angles +// (in degrees) calculated from the quaternions coming from the FIFO. +// Note that Euler angles suffer from gimbal lock (for more info, see +// http://en.wikipedia.org/wiki/Gimbal_lock) +//#define OUTPUT_READABLE_EULER + +// uncomment "OUTPUT_READABLE_YAWPITCHROLL" if you want to see the yaw/ +// pitch/roll angles (in degrees) calculated from the quaternions coming +// from the FIFO. Note this also requires gravity vector calculations. +// Also note that yaw/pitch/roll angles suffer from gimbal lock (for +// more info, see: http://en.wikipedia.org/wiki/Gimbal_lock) +#define OUTPUT_READABLE_YAWPITCHROLL + +// uncomment "OUTPUT_READABLE_REALACCEL" if you want to see acceleration +// components with gravity removed. This acceleration reference frame is +// not compensated for orientation, so +X is always +X according to the +// sensor, just without the effects of gravity. If you want acceleration +// compensated for orientation, us OUTPUT_READABLE_WORLDACCEL instead. +//#define OUTPUT_READABLE_REALACCEL + +// uncomment "OUTPUT_READABLE_WORLDACCEL" if you want to see acceleration +// components with gravity removed and adjusted for the world frame of +// reference (yaw is relative to initial orientation, since no magnetometer +// is present in this case). Could be quite handy in some cases. +//#define OUTPUT_READABLE_WORLDACCEL + +// uncomment "OUTPUT_TEAPOT" if you want output that matches the +// format used for the InvenSense teapot demo +//#define OUTPUT_TEAPOT + + + +#define LED_PIN 13 // (Arduino is 13, Teensy is 11, Teensy++ is 6) +bool blinkState = false; + +// MPU control/status vars +bool dmpReady = false; // set true if DMP init was successful +uint8_t mpuIntStatus; // holds actual interrupt status byte from MPU +uint8_t devStatus; // return status after each device operation (0 = success, !0 = error) +uint16_t packetSize; // expected DMP packet size (default is 42 bytes) +uint16_t fifoCount; // count of all bytes currently in FIFO +uint8_t fifoBuffer[64]; // FIFO storage buffer + +// orientation/motion vars +Quaternion q; // [w, x, y, z] quaternion container +VectorInt16 aa; // [x, y, z] accel sensor measurements +VectorInt16 aaReal; // [x, y, z] gravity-free accel sensor measurements +VectorInt16 aaWorld; // [x, y, z] world-frame accel sensor measurements +VectorFloat gravity; // [x, y, z] gravity vector +float euler[3]; // [psi, theta, phi] Euler angle container +float ypr[3]; // [yaw, pitch, roll] yaw/pitch/roll container and gravity vector + +// packet structure for InvenSense teapot demo +uint8_t teapotPacket[14] = { '$', 0x02, 0,0, 0,0, 0,0, 0,0, 0x00, 0x00, '\r', '\n' }; + + + +// ================================================================ +// === INTERRUPT DETECTION ROUTINE === +// ================================================================ + +volatile bool mpuInterrupt = false; // indicates whether MPU interrupt pin has gone high +void dmpDataReady() { + mpuInterrupt = true; +} + + + +// ================================================================ +// === INITIAL SETUP === +// ================================================================ + +void setup() { + // join I2C bus (I2Cdev library doesn't do this automatically) + #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE + Wire.begin(); + TWBR = 24; // 400kHz I2C clock (200kHz if CPU is 8MHz) + #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE + Fastwire::setup(400, true); + #endif + + // initialize serial communication + // (115200 chosen because it is required for Teapot Demo output, but it's + // really up to you depending on your project) + Serial.begin(115200); + while (!Serial); // wait for Leonardo enumeration, others continue immediately + + // NOTE: 8MHz or slower host processors, like the Teensy @ 3.3v or Ardunio + // Pro Mini running at 3.3v, cannot handle this baud rate reliably due to + // the baud timing being too misaligned with processor ticks. You must use + // 38400 or slower in these cases, or use some kind of external separate + // crystal solution for the UART timer. + + // initialize device + Serial.println(F("Initializing I2C devices...")); + mpu.initialize(); + + // verify connection + Serial.println(F("Testing device connections...")); + Serial.println(mpu.testConnection() ? F("MPU6050 connection successful") : F("MPU6050 connection failed")); + + // wait for ready + Serial.println(F("\nSend any character to begin DMP programming and demo: ")); + while (Serial.available() && Serial.read()); // empty buffer + while (!Serial.available()); // wait for data + while (Serial.available() && Serial.read()); // empty buffer again + + // load and configure the DMP + Serial.println(F("Initializing DMP...")); + devStatus = mpu.dmpInitialize(); + + // supply your own gyro offsets here, scaled for min sensitivity + mpu.setXGyroOffset(220); + mpu.setYGyroOffset(76); + mpu.setZGyroOffset(-85); + mpu.setZAccelOffset(1788); // 1688 factory default for my test chip + + // make sure it worked (returns 0 if so) + if (devStatus == 0) { + // turn on the DMP, now that it's ready + Serial.println(F("Enabling DMP...")); + mpu.setDMPEnabled(true); + + // enable Arduino interrupt detection + Serial.println(F("Enabling interrupt detection (Arduino external interrupt 0)...")); + attachInterrupt(0, dmpDataReady, RISING); + mpuIntStatus = mpu.getIntStatus(); + + // set our DMP Ready flag so the main loop() function knows it's okay to use it + Serial.println(F("DMP ready! Waiting for first interrupt...")); + dmpReady = true; + + // get expected DMP packet size for later comparison + packetSize = mpu.dmpGetFIFOPacketSize(); + } else { + // ERROR! + // 1 = initial memory load failed + // 2 = DMP configuration updates failed + // (if it's going to break, usually the code will be 1) + Serial.print(F("DMP Initialization failed (code ")); + Serial.print(devStatus); + Serial.println(F(")")); + } + + // configure LED for output + pinMode(LED_PIN, OUTPUT); +} + + + +// ================================================================ +// === MAIN PROGRAM LOOP === +// ================================================================ + +void loop() { + // if programming failed, don't try to do anything + if (!dmpReady) return; + + // wait for MPU interrupt or extra packet(s) available + while (!mpuInterrupt && fifoCount < packetSize) { + // other program behavior stuff here + // . + // . + // . + // if you are really paranoid you can frequently test in between other + // stuff to see if mpuInterrupt is true, and if so, "break;" from the + // while() loop to immediately process the MPU data + // . + // . + // . + } + + // reset interrupt flag and get INT_STATUS byte + mpuInterrupt = false; + mpuIntStatus = mpu.getIntStatus(); + + // get current FIFO count + fifoCount = mpu.getFIFOCount(); + + // check for overflow (this should never happen unless our code is too inefficient) + if ((mpuIntStatus & 0x10) || fifoCount == 1024) { + // reset so we can continue cleanly + mpu.resetFIFO(); + Serial.println(F("FIFO overflow!")); + + // otherwise, check for DMP data ready interrupt (this should happen frequently) + } else if (mpuIntStatus & 0x02) { + // wait for correct available data length, should be a VERY short wait + while (fifoCount < packetSize) fifoCount = mpu.getFIFOCount(); + + // read a packet from FIFO + mpu.getFIFOBytes(fifoBuffer, packetSize); + + // track FIFO count here in case there is > 1 packet available + // (this lets us immediately read more without waiting for an interrupt) + fifoCount -= packetSize; + + #ifdef OUTPUT_READABLE_QUATERNION + // display quaternion values in easy matrix form: w x y z + mpu.dmpGetQuaternion(&q, fifoBuffer); + Serial.print("quat\t"); + Serial.print(q.w); + Serial.print("\t"); + Serial.print(q.x); + Serial.print("\t"); + Serial.print(q.y); + Serial.print("\t"); + Serial.println(q.z); + #endif + + #ifdef OUTPUT_READABLE_EULER + // display Euler angles in degrees + mpu.dmpGetQuaternion(&q, fifoBuffer); + mpu.dmpGetEuler(euler, &q); + Serial.print("euler\t"); + Serial.print(euler[0] * 180/M_PI); + Serial.print("\t"); + Serial.print(euler[1] * 180/M_PI); + Serial.print("\t"); + Serial.println(euler[2] * 180/M_PI); + #endif + + #ifdef OUTPUT_READABLE_YAWPITCHROLL + // display Euler angles in degrees + mpu.dmpGetQuaternion(&q, fifoBuffer); + mpu.dmpGetGravity(&gravity, &q); + mpu.dmpGetYawPitchRoll(ypr, &q, &gravity); + Serial.print("ypr\t"); + Serial.print(ypr[0] * 180/M_PI); + Serial.print("\t"); + Serial.print(ypr[1] * 180/M_PI); + Serial.print("\t"); + Serial.println(ypr[2] * 180/M_PI); + #endif + + #ifdef OUTPUT_READABLE_REALACCEL + // display real acceleration, adjusted to remove gravity + mpu.dmpGetQuaternion(&q, fifoBuffer); + mpu.dmpGetAccel(&aa, fifoBuffer); + mpu.dmpGetGravity(&gravity, &q); + mpu.dmpGetLinearAccel(&aaReal, &aa, &gravity); + Serial.print("areal\t"); + Serial.print(aaReal.x); + Serial.print("\t"); + Serial.print(aaReal.y); + Serial.print("\t"); + Serial.println(aaReal.z); + #endif + + #ifdef OUTPUT_READABLE_WORLDACCEL + // display initial world-frame acceleration, adjusted to remove gravity + // and rotated based on known orientation from quaternion + mpu.dmpGetQuaternion(&q, fifoBuffer); + mpu.dmpGetAccel(&aa, fifoBuffer); + mpu.dmpGetGravity(&gravity, &q); + mpu.dmpGetLinearAccel(&aaReal, &aa, &gravity); + mpu.dmpGetLinearAccelInWorld(&aaWorld, &aaReal, &q); + Serial.print("aworld\t"); + Serial.print(aaWorld.x); + Serial.print("\t"); + Serial.print(aaWorld.y); + Serial.print("\t"); + Serial.println(aaWorld.z); + #endif + + #ifdef OUTPUT_TEAPOT + // display quaternion values in InvenSense Teapot demo format: + teapotPacket[2] = fifoBuffer[0]; + teapotPacket[3] = fifoBuffer[1]; + teapotPacket[4] = fifoBuffer[4]; + teapotPacket[5] = fifoBuffer[5]; + teapotPacket[6] = fifoBuffer[8]; + teapotPacket[7] = fifoBuffer[9]; + teapotPacket[8] = fifoBuffer[12]; + teapotPacket[9] = fifoBuffer[13]; + Serial.write(teapotPacket, 14); + teapotPacket[11]++; // packetCount, loops at 0xFF on purpose + #endif + + // blink LED to indicate activity + blinkState = !blinkState; + digitalWrite(LED_PIN, blinkState); + } +} diff --git a/hardware/mesure_cyclic_lenght/mesure_cyclic_lenght.ino b/hardware/mesure_cyclic_lenght/mesure_cyclic_lenght.ino new file mode 100644 index 0000000..81f0945 --- /dev/null +++ b/hardware/mesure_cyclic_lenght/mesure_cyclic_lenght.ino @@ -0,0 +1,30 @@ +/* +Measure the lenght of the Loop cycle. +*/ + +long lastMillis = 0; +long loops = 0; + +void setup(){ + Serial.begin(9600); +} + +void loop(){ + long currentMillis = millis(); + loops++; + + /* By doing complex math, reading sensors, using the "delay" function, + * etc you will increase the time required to finish the loop, + * which will decrease the number of loops per second. + */ + + if(currentMillis - lastMillis > 1000){ + Serial.print("Loops last second:"); + Serial.println(loops); + + lastMillis = currentMillis; + loops = 0; + } +} + + diff --git a/hardware/real_time_clock__DS3231/real_time_clock__DS3231.ino b/hardware/real_time_clock__DS3231/real_time_clock__DS3231.ino new file mode 100644 index 0000000..268be71 --- /dev/null +++ b/hardware/real_time_clock__DS3231/real_time_clock__DS3231.ino @@ -0,0 +1,118 @@ +// See tutotial: http://tronixlabs.com/news/tutorial-using-ds1307-and-ds3231-realtime-clock-modules-with-arduino/ + +#include "Wire.h" +#define DS3231_I2C_ADDRESS 0x68 +// Convert normal decimal numbers to binary coded decimal +byte decToBcd(byte val) +{ + return( (val/10*16) + (val%10) ); +} +// Convert binary coded decimal to normal decimal numbers +byte bcdToDec(byte val) +{ + return( (val/16*10) + (val%16) ); +} +void setup() +{ + Wire.begin(); + Serial.begin(9600); + // set the initial time here: + // DS3231 seconds, minutes, hours, day, date, month, year + //setDS3231time(30,27,19,2,10,2,15); // Comment again after setting up + // or you will rset the clock at each upload +} +void setDS3231time(byte second, byte minute, byte hour, byte dayOfWeek, byte +dayOfMonth, byte month, byte year) +{ + // sets time and date data to DS3231 + Wire.beginTransmission(DS3231_I2C_ADDRESS); + Wire.write(0); // set next input to start at the seconds register + Wire.write(decToBcd(second)); // set seconds + Wire.write(decToBcd(minute)); // set minutes + Wire.write(decToBcd(hour)); // set hours + Wire.write(decToBcd(dayOfWeek)); // set day of week (1=Sunday, 7=Saturday) + Wire.write(decToBcd(dayOfMonth)); // set date (1 to 31) + Wire.write(decToBcd(month)); // set month + Wire.write(decToBcd(year)); // set year (0 to 99) + Wire.endTransmission(); +} +void readDS3231time(byte *second, +byte *minute, +byte *hour, +byte *dayOfWeek, +byte *dayOfMonth, +byte *month, +byte *year) +{ + Wire.beginTransmission(DS3231_I2C_ADDRESS); + Wire.write(0); // set DS3231 register pointer to 00h + Wire.endTransmission(); + Wire.requestFrom(DS3231_I2C_ADDRESS, 7); + // request seven bytes of data from DS3231 starting from register 00h + *second = bcdToDec(Wire.read() & 0x7f); + *minute = bcdToDec(Wire.read()); + *hour = bcdToDec(Wire.read() & 0x3f); + *dayOfWeek = bcdToDec(Wire.read()); + *dayOfMonth = bcdToDec(Wire.read()); + *month = bcdToDec(Wire.read()); + *year = bcdToDec(Wire.read()); +} +void displayTime() +{ + byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; + // retrieve data from DS3231 + readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, + &year); + // send it to the serial monitor + Serial.print(hour, DEC); + // convert the byte variable to a decimal number when displayed + Serial.print(":"); + if (minute<10) + { + Serial.print("0"); + } + Serial.print(minute, DEC); + Serial.print(":"); + if (second<10) + { + Serial.print("0"); + } + Serial.print(second, DEC); + Serial.print(" "); + Serial.print(dayOfMonth, DEC); + Serial.print("/"); + Serial.print(month, DEC); + Serial.print("/"); + Serial.print(year, DEC); + Serial.print(" Day of week: "); + switch(dayOfWeek){ + case 1: + Serial.println("Sunday"); + break; + case 2: + Serial.println("Monday"); + break; + case 3: + Serial.println("Tuesday"); + break; + case 4: + Serial.println("Wednesday"); + break; + case 5: + Serial.println("Thursday"); + break; + case 6: + Serial.println("Friday"); + break; + case 7: + Serial.println("Saturday"); + break; + } +} +void loop() +{ + displayTime(); // display the real-time clock data on the Serial Monitor, + delay(1000); // every second +} + + diff --git a/hardware/ultrasonic/ultrasonic_distance_programming/ultrasonic_distance_programming.ino b/hardware/ultrasonic/ultrasonic_distance_programming/ultrasonic_distance_programming.ino new file mode 100644 index 0000000..5887a88 --- /dev/null +++ b/hardware/ultrasonic/ultrasonic_distance_programming/ultrasonic_distance_programming.ino @@ -0,0 +1,193 @@ +/* + HC-SR04 Ping distance sensor: + VCC to arduino 5v + GND to arduino GND + Echo to Arduino pin 7 + Trig to Arduino pin 8 + + This sketch originates from Virtualmix: http://goo.gl/kJ8Gl + Has been modified by Winkle ink here: http://winkleink.blogspot.com.au/2012/05/arduino-hc-sr04-ultrasonic-distance.html + And modified further by ScottC here: http://arduinobasics.blogspot.com.au/2012/11/arduinobasics-hc-sr04-ultrasonic-sensor.html + on 10 Nov 2012. + */ + + +#define echoPin 7 // Echo Pin +#define trigPin 8 // Trigger Pin +#define LEDPin 13 // Onboard LED + +int maximumRange = 200; // Maximum range needed +int minimumRange = 0; // Minimum range needed +long duration, distance; // Duration used to calculate distance + +void setup() { + Serial.begin (9600); + pinMode(trigPin, OUTPUT); + pinMode(echoPin, INPUT); + pinMode(LEDPin, OUTPUT); // Use LED indicator (if required) +} + +void loop() { +/* The following trigPin/echoPin cycle is used to determine the + distance of the nearest object by bouncing soundwaves off of it. */ + digitalWrite(trigPin, LOW); + delayMicroseconds(2); + + digitalWrite(trigPin, HIGH); + delayMicroseconds(10); + + digitalWrite(trigPin, LOW); + duration = pulseIn(echoPin, HIGH); + + //Calculate the distance (in cm) based on the speed of sound. + distance = duration/58.2; + + if (distance >= maximumRange || distance <= minimumRange){ + /* Send a negative number to computer and Turn LED ON + to indicate "out of range" */ + Serial.println("-1"); + digitalWrite(LEDPin, HIGH); + } + else { + /* Send the distance to the computer using Serial protocol, and + turn LED OFF to indicate successful reading. */ + Serial.println(distance); + digitalWrite(LEDPin, LOW); + } + + //Delay 50ms before next reading. + delay(50); +} + +// End Arduino, start Processing +// Take care of: myPort (for serial comm) +///* +///* The following Processing Sketch was created by ScottC on +// the 10 Nov 2012 : http://arduinobasics.blogspot.com/ +// +// Inspired by this Processing sketch by Daniel Shiffman: +// http://processing.org/learning/basics/sinewave.html +// +//*/ +//import processing.serial.*; +// +// +//int numOfShapes = 60; // Number of squares to display on screen +//int shapeSpeed = 2; // Speed at which the shapes move to new position +// // 2 = Fastest, Larger numbers are slower +// +////Global Variables +//Square[] mySquares = new Square[numOfShapes]; +//int shapeSize, distance; +//String comPortString; +//Serial myPort; +// +///* -----------------------Setup ---------------------------*/ +//void setup(){ +// size(displayWidth,displayHeight); //Use entire screen size. +// smooth(); // draws all shapes with smooth edges. +// +// /* Calculate the size of the squares and initialise the Squares array */ +// shapeSize = (width/numOfShapes); +// for(int i = 0; i0; i--){ +// /* Use the previous square's position as a target */ +// targetY=mySquares[i-1].getY(); +// oldY=mySquares[i].getY(); +// +// if(abs(oldY-targetY)<2){ +// newY=targetY; //This helps to line them up +// }else{ +// //calculate the new position of the square +// newY=oldY-((oldY-targetY)/shapeSpeed); +// } +// //Set the new position of the square +// mySquares[i].setY(newY); +// +// /*Calculate the colour of the square based on its +// position on the screen */ +// blueVal = int(map(newY,0,height,0,255)); +// redVal = 255-blueVal; +// fill(redVal,0,blueVal); +// +// /* Draw the square on the screen */ +// rect(mySquares[i].getX(), mySquares[i].getY(),shapeSize,shapeSize); +// } +//} +// +///* ---------------------sketchFullScreen---------------------------*/ +//// This puts processing into Full Screen Mode +//boolean sketchFullScreen() { +// return true; +//} +// +///* ---------------------CLASS: Square ---------------------------*/ +//class Square{ +// int xPosition, yPosition; +// +// Square(int xPos, int yPos){ +// xPosition = xPos; +// yPosition = yPos; +// } +// +// int getX(){ +// return xPosition; +// } +// +// int getY(){ +// return yPosition; +// } +// +// void setY(int yPos){ +// yPosition = yPos; +// } +//} + diff --git a/hardware/ultrasonic/ultrasonic_distance_simple/ultrasonic_distance_simple.ino b/hardware/ultrasonic/ultrasonic_distance_simple/ultrasonic_distance_simple.ino new file mode 100644 index 0000000..85b5ad6 --- /dev/null +++ b/hardware/ultrasonic/ultrasonic_distance_simple/ultrasonic_distance_simple.ino @@ -0,0 +1,54 @@ +/* +HC-SR04 Ping distance sensor] + VCC to arduino 5v GND to arduino GND + Echo to Arduino pin 13 Trig to Arduino pin 12 + Red POS to Arduino pin 11 + Green POS to Arduino pin 10 + 560 ohm resistor to both LED NEG and GRD power rail + More info at: http://goo.gl/kJ8Gl + Original code improvements to the Ping sketch sourced from Trollmaker.com + Some code and wiring inspired by http://en.wikiversity.org/wiki/User:Dstaub/robotcar + */ + +#define trigPin 8 +#define echoPin 7 +#define RED 11 +#define GREEN 10 + +void setup() { + Serial.begin (9600); + pinMode(trigPin, OUTPUT); + pinMode(echoPin, INPUT); + pinMode(RED, OUTPUT); + pinMode(GREEN, OUTPUT); +} + +void loop() { + long duration, distance; + digitalWrite(trigPin, LOW); // Prepare for ping + delayMicroseconds(2); // + digitalWrite(trigPin, HIGH); // Send a ping + delayMicroseconds(10); // + digitalWrite(trigPin, LOW); // Set down ping + duration = pulseIn(echoPin, HIGH); + distance = (duration/2) / 29.1; // Speed is ~300m/s, + // so it takes ~29.1 milliseconds for a cm. + // Distance is half of (out + back) + if (distance < 5) { // This is where the LED On/Off happens + digitalWrite(RED,HIGH); // When the Red condition is met, the Green LED should turn off + digitalWrite(GREEN,LOW); + } + else { + digitalWrite(RED,LOW); + digitalWrite(GREEN,HIGH); + } + if (distance >= 200 || distance <= 0){ + Serial.println("Out of range"); + } + else { + Serial.print(distance); + Serial.println(" cm"); + } + delay(500); +} + diff --git a/motors/simple_motor_PWM_potenziometer__minimum_transistor_diode_3/simple_motor_PWM_potenziometer__minimum_transistor_diode_3.ino b/motors/simple_motor_PWM_potenziometer__minimum_transistor_diode_3/simple_motor_PWM_potenziometer__minimum_transistor_diode_3.ino new file mode 100644 index 0000000..83965d1 --- /dev/null +++ b/motors/simple_motor_PWM_potenziometer__minimum_transistor_diode_3/simple_motor_PWM_potenziometer__minimum_transistor_diode_3.ino @@ -0,0 +1,51 @@ +/* + Simple Motor with variable spped from pot input + + This sketch use a transistor and a diode + in order to poer a 5v ~150mAh directly from the board. + Hard thing is to find a suitable motor! + + + This version uses a pot as throttle control, + serial for debuggin. + + Optimized for a minimum throttle value in order to keep the motor off + */ + +const int analogInPin = A0; +const int motorPin = 9; + +int potValue = 0; +int motValue = 0; +const int minMotValue = 50 ; // Minimum power requiement of my own motr, + // This is going to differ from motor to motor + +void setup() { + pinMode(motorPin, OUTPUT); + Serial.begin(9600); // Debuggin + +} +void loop() { + potValue = analogRead(analogInPin); + motValue = potValue / 4 ; // Simple mapping 1024 -> 255 + +if (motValue > minMotValue) { // Minimum motor spped check + analogWrite(motorPin,motValue); // Change the PWM speed of the motor +} else { +analogWrite(motorPin,LOW) ; +} + + + Serial.print("Pot value = " ); + Serial.print(potValue); + Serial.print("\t Motor speed = "); + Serial.println(motValue); + delay(3); // Pause, helps to stabilize the input, + // slows the serial output +} + + + + + + diff --git a/motors/simple_motor_PWM_potenziometer_transistor_diode_2/simple_motor_PWM_potenziometer_transistor_diode_2.ino b/motors/simple_motor_PWM_potenziometer_transistor_diode_2/simple_motor_PWM_potenziometer_transistor_diode_2.ino new file mode 100644 index 0000000..54a87ed --- /dev/null +++ b/motors/simple_motor_PWM_potenziometer_transistor_diode_2/simple_motor_PWM_potenziometer_transistor_diode_2.ino @@ -0,0 +1,41 @@ +/* + Simple Motor with variable spped from pot input + + This sketch use a transistor and a diode + in order to poer a 5v ~150mAh directly from the board. + Hard thing is to find a suitable motor! + + This version uses a pot as throttle control, + serial for debuggin. + */ + +const int analogInPin = A0; +const int motorPin = 9; + +int potValue = 0; +int motValue = 0; + +void setup() { + pinMode(motorPin, OUTPUT); + Serial.begin(9600); // Debuggin + +} +void loop() { + potValue = analogRead(analogInPin); + motValue = potValue / 4 ; // Simple mapping 1024 -> 255 + + analogWrite(motorPin,motValue); // Change the PWM speed of the motor + + Serial.print("Pot value = " ); + Serial.print(potValue); + Serial.print("\t Motor speed = "); + Serial.println(motValue); + delay(3); // Pause, helps to stabilize the input + // and keeps a brushed motor from over heating ;) +} + + + + + + diff --git a/motors/simple_motor_PWM_transistor_diode_1/simple_motor_PWM_transistor_diode_1.ino b/motors/simple_motor_PWM_transistor_diode_1/simple_motor_PWM_transistor_diode_1.ino new file mode 100644 index 0000000..ac23845 --- /dev/null +++ b/motors/simple_motor_PWM_transistor_diode_1/simple_motor_PWM_transistor_diode_1.ino @@ -0,0 +1,27 @@ +/* Simple Motor + This sketch use a transistor and a diode + in order to poer a 5v ~150mAh directly from the board. + Hard thing is to find a suitable motor! + + This version uses PWM for acceleration / deceleration + */ + +int motorPin = 9; +void setup() { + pinMode(motorPin, OUTPUT); +} +void loop() { + for(int motorValue = 0 ; motorValue <= 255; motorValue +=5){ // PWM up + analogWrite(motorPin, motorValue); + delay(60); + } + for(int motorValue = 255 ; motorValue >= 0; motorValue -=5){ // PWM down + analogWrite(motorPin, motorValue); + delay(30); + } +delay(900); // Pause +} + + + + diff --git a/motors/simple_motor_transistor_diode_0/simple_motor_transistor_diode_0.ino b/motors/simple_motor_transistor_diode_0/simple_motor_transistor_diode_0.ino new file mode 100644 index 0000000..5b86a2b --- /dev/null +++ b/motors/simple_motor_transistor_diode_0/simple_motor_transistor_diode_0.ino @@ -0,0 +1,23 @@ +/* Simple Motor + This sketch use a transistor and a diode + in order to power a 5v ~150mAh directly from the board. + Hard thing is to find a suitable motor! + + In order to power a more powerfull motor you need to connect + the transistor to an other power line. + */ + +int motorPin = 9; +void setup() { + pinMode(motorPin, OUTPUT); // We drive the motor just like a LED +} + +void loop() { + digitalWrite(motorPin, HIGH); // Turn on the motor full throttle + delay(1000); + digitalWrite(motorPin, LOW); // Turn off motor + delay(5000); +} + + + diff --git a/optimization/analogInput_with_range/analogInput_with_range.ino b/optimization/analogInput_with_range/analogInput_with_range.ino new file mode 100644 index 0000000..715cc79 --- /dev/null +++ b/optimization/analogInput_with_range/analogInput_with_range.ino @@ -0,0 +1,59 @@ +/* + Analog Input + Demonstrates analog input by reading an analog sensor on analog pin 0 and + turning on and off a light emitting diode(LED) connected to digital pin 13. + The amount of time the LED will be on and off depends on + the value obtained by analogRead(). + + The circuit: + * Potentiometer attached to analog input 0 + * center pin of the potentiometer to the analog pin + * one side pin (either one) to ground + * the other side pin to +5V + * LED anode (long leg) attached to digital output 13 + * LED cathode (short leg) attached to ground + + * Note: because most Arduinos have a built-in LED attached + to pin 13 on the board, the LED is optional. + + + Created by David Cuartielles + modified 30 Aug 2011 + By Tom Igoe + + This example code is in the public domain. + + http://arduino.cc/en/Tutorial/AnalogInput + + Modified by A.Manni for using a 2.4k Pot with 2 5k resistors + Range = (1024 - offset) * 1024 / (1024 - offset) + With serial debugging. + */ + +int sensorPin = A0; // select the input pin for the potentiometer +int ledPin = 13; // select the pin for the LED +int sensorValue = 0; // variable to store the value coming from the sensor + +void setup() { + // declare the ledPin as an OUTPUT: + pinMode(ledPin, OUTPUT); + Serial.begin(9600); +} + +void loop() { + // read the value from the sensor: + sensorValue = analogRead(sensorPin); + // turn the ledPin on + digitalWrite(ledPin, HIGH); + // stop the program for milliseconds: + delay(sensorValue); + // turn the ledPin off: + digitalWrite(ledPin, LOW); + // stop the program for for milliseconds: + // Range = (1024 - offset) * 1024 / (1024 - offset) + delay((sensorValue -723 ) * 3.4); // Range = 723 - 1024 + Serial.print("Sensor Value: ") ; + Serial.println(sensorValue); + Serial.print("Adjusted value: ") ; + Serial.println((sensorValue -723 ) * 3.4); +} diff --git a/optimization/analogInput_with_range_and_limits/analogInput_with_range_and_limits.ino b/optimization/analogInput_with_range_and_limits/analogInput_with_range_and_limits.ino new file mode 100644 index 0000000..aa18a9e --- /dev/null +++ b/optimization/analogInput_with_range_and_limits/analogInput_with_range_and_limits.ino @@ -0,0 +1,71 @@ +/* + Analog Input + Demonstrates analog input by reading an analog sensor on analog pin 0 and + turning on and off a light emitting diode(LED) connected to digital pin 13. + The amount of time the LED will be on and off depends on + the value obtained by analogRead(). + + The circuit: + * Potentiometer attached to analog input 0 + * center pin of the potentiometer to the analog pin + * one side pin (either one) to ground + * the other side pin to +5V + * LED anode (long leg) attached to digital output 13 + * LED cathode (short leg) attached to ground + + * Note: because most Arduinos have a built-in LED attached + to pin 13 on the board, the LED is optional. + + + Created by David Cuartielles + modified 30 Aug 2011 + By Tom Igoe + + This example code is in the public domain. + + http://arduino.cc/en/Tutorial/AnalogInput + + Modified by A.Manni for using a 2.4k Pot with 2 5k resistors + Range = (1024 - offset) * 1024 / (1024 - offset) + Range can be defined with map(sensorValue, 724, 0124, 0, 1024) + Note: range is inverted + With serial debugging. + - Added initial limit for delay + + */ + +int sensorPin = A0; // select the input pin for the potentiometer +int ledPin = 13; // select the pin for the LED +int sensorValue = 0; // variable to store the value coming from the sensor +int calValue = map(sensorValue, 723, 1024, 0, 1024) ; // variable to store calibrated value for the Pot +// This could be done with a map() +void setup() { + + pinMode(ledPin, OUTPUT); // declare the ledPin as an OUTPUT: + Serial.begin(9600); + +} + +void loop() { + // read the value from the sensor: + sensorValue = analogRead(sensorPin); + + // turn the ledPin on + digitalWrite(ledPin, HIGH); + // stop the program for milliseconds: + delay(sensorValue); + // turn the ledPin off: + digitalWrite(ledPin, LOW); + // stop the program for for milliseconds: + // Range = (1024 - offset) * 1024 / (1024 - offset) + // calValue = (sensorValue -723 ) * 3.4 ; + delay(calValue); + Serial.print("Sensor Value: ") ; + Serial.println(sensorValue); + Serial.print("Adjusted value: ") ; + Serial.println(calValue); + +} + + + diff --git a/piezo/README b/piezo/README new file mode 100644 index 0000000..4c3877f --- /dev/null +++ b/piezo/README @@ -0,0 +1,3 @@ +There are 4/5 nice sketches bundled with arduino: +-> Digital : tone* +-> Sensors: knock diff --git a/piezo/keyboard_three_pullup_buttons/keyboard_three_pullup_buttons.ino b/piezo/keyboard_three_pullup_buttons/keyboard_three_pullup_buttons.ino new file mode 100644 index 0000000..1bd4e47 --- /dev/null +++ b/piezo/keyboard_three_pullup_buttons/keyboard_three_pullup_buttons.ino @@ -0,0 +1,47 @@ +/* + Melody keyboard with Input Pullup Serial + Plays a pitch that changes based on 3 digital inputs + + This example demonstrates the use of pinMode(INPUT_PULLUP). It reads a + digital input on pin 2 and prints the results to the serial monitor. + + Thecircuit: + * 3 buttons in pin 2,3,4 with no resistors + * Piezo on digital pin 9 + * Serial debug is available + + This example code is in the public domain + + */ + +// Please take care of the include path +#include "/root/arduino/sketchbook-lessons/piezo_mario_tune/pitches.h"; +int input[]= {1,2,3}; + int notes[] = { + NOTE_A4, NOTE_C4,NOTE_E3 }; + +void setup(){ + //start serial connection + Serial.begin(9600); + //configure pin2 as an input and enable the internal pull-up resistor + pinMode(2, INPUT_PULLUP); + pinMode(3, INPUT_PULLUP); + pinMode(4, INPUT_PULLUP); + pinMode(9, OUTPUT); + + +} + +void loop(){ + for (int thisSensor = 2; thisSensor < 5; thisSensor++) { + int sensorReading = digitalRead(thisSensor); + if (sensorReading == LOW) { + Serial.println(thisSensor); + tone(9, notes[thisSensor -2], 50); // Notes array is translated + } + //delay(2); + } +} + + + diff --git a/piezo/piezo_mario_tune/piezo_mario_tune.ino b/piezo/piezo_mario_tune/piezo_mario_tune.ino new file mode 100644 index 0000000..26c171a --- /dev/null +++ b/piezo/piezo_mario_tune/piezo_mario_tune.ino @@ -0,0 +1,193 @@ +/* + Arduino Mario Bros Tunes + With Piezo Buzzer and PWM + by: Dipto Pratyaksa + last updated: 31/3/13 +*/ +#include + +#define melodyPin 3 +//Mario main theme melody +int melody[] = { + NOTE_E7, NOTE_E7, 0, NOTE_E7, + 0, NOTE_C7, NOTE_E7, 0, + NOTE_G7, 0, 0, 0, + NOTE_G6, 0, 0, 0, + + NOTE_C7, 0, 0, NOTE_G6, + 0, 0, NOTE_E6, 0, + 0, NOTE_A6, 0, NOTE_B6, + 0, NOTE_AS6, NOTE_A6, 0, + + NOTE_G6, NOTE_E7, NOTE_G7, + NOTE_A7, 0, NOTE_F7, NOTE_G7, + 0, NOTE_E7, 0,NOTE_C7, + NOTE_D7, NOTE_B6, 0, 0, + + NOTE_C7, 0, 0, NOTE_G6, + 0, 0, NOTE_E6, 0, + 0, NOTE_A6, 0, NOTE_B6, + 0, NOTE_AS6, NOTE_A6, 0, + + NOTE_G6, NOTE_E7, NOTE_G7, + NOTE_A7, 0, NOTE_F7, NOTE_G7, + 0, NOTE_E7, 0,NOTE_C7, + NOTE_D7, NOTE_B6, 0, 0 +}; +//Mario main them tempo +int tempo[] = { + 12, 12, 12, 12, + 12, 12, 12, 12, + 12, 12, 12, 12, + 12, 12, 12, 12, + + 12, 12, 12, 12, + 12, 12, 12, 12, + 12, 12, 12, 12, + 12, 12, 12, 12, + + 9, 9, 9, + 12, 12, 12, 12, + 12, 12, 12, 12, + 12, 12, 12, 12, + + 12, 12, 12, 12, + 12, 12, 12, 12, + 12, 12, 12, 12, + 12, 12, 12, 12, + + 9, 9, 9, + 12, 12, 12, 12, + 12, 12, 12, 12, + 12, 12, 12, 12, +}; + +// + +//Underworld melody +int underworld_melody[] = { + NOTE_C4, NOTE_C5, NOTE_A3, NOTE_A4, + NOTE_AS3, NOTE_AS4, 0, + 0, + NOTE_C4, NOTE_C5, NOTE_A3, NOTE_A4, + NOTE_AS3, NOTE_AS4, 0, + 0, + NOTE_F3, NOTE_F4, NOTE_D3, NOTE_D4, + NOTE_DS3, NOTE_DS4, 0, + 0, + NOTE_F3, NOTE_F4, NOTE_D3, NOTE_D4, + NOTE_DS3, NOTE_DS4, 0, + 0, NOTE_DS4, NOTE_CS4, NOTE_D4, + NOTE_CS4, NOTE_DS4, + NOTE_DS4, NOTE_GS3, + NOTE_G3, NOTE_CS4, + NOTE_C4, NOTE_FS4,NOTE_F4, NOTE_E3, NOTE_AS4, NOTE_A4, + NOTE_GS4, NOTE_DS4, NOTE_B3, + NOTE_AS3, NOTE_A3, NOTE_GS3, + 0, 0, 0 +}; +//Underwolrd tempo +int underworld_tempo[] = { + 12, 12, 12, 12, + 12, 12, 6, + 3, + 12, 12, 12, 12, + 12, 12, 6, + 3, + 12, 12, 12, 12, + 12, 12, 6, + 3, + 12, 12, 12, 12, + 12, 12, 6, + 6, 18, 18, 18, + 6, 6, + 6, 6, + 6, 6, + 18, 18, 18,18, 18, 18, + 10, 10, 10, + 10, 10, 10, + 3, 3, 3 +}; + +void setup(void) +{ + pinMode(3, OUTPUT);//buzzer + pinMode(13, OUTPUT);//led indicator when singing a note + +} +void loop() +{ +//sing the tunes + sing(1); + sing(1); + sing(2); +} +int song = 0; + +void sing(int s){ + // iterate over the notes of the melody: + song = s; + if(song==2){ + Serial.println(" 'Underworld Theme'"); + int size = sizeof(underworld_melody) / sizeof(int); + for (int thisNote = 0; thisNote < size; thisNote++) { + + // to calculate the note duration, take one second + // divided by the note type. + //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc. + int noteDuration = 1000/underworld_tempo[thisNote]; + + buzz(melodyPin, underworld_melody[thisNote],noteDuration); + + // to distinguish the notes, set a minimum time between them. + // the note's duration + 30% seems to work well: + int pauseBetweenNotes = noteDuration * 1.30; + delay(pauseBetweenNotes); + + // stop the tone playing: + buzz(melodyPin, 0,noteDuration); + + } + + }else{ + + Serial.println(" 'Mario Theme'"); + int size = sizeof(melody) / sizeof(int); + for (int thisNote = 0; thisNote < size; thisNote++) { + + // to calculate the note duration, take one second + // divided by the note type. + //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc. + int noteDuration = 1000/tempo[thisNote]; + + buzz(melodyPin, melody[thisNote],noteDuration); + + // to distinguish the notes, set a minimum time between them. + // the note's duration + 30% seems to work well: + int pauseBetweenNotes = noteDuration * 1.30; + delay(pauseBetweenNotes); + + // stop the tone playing: + buzz(melodyPin, 0,noteDuration); + + } + } +} + +void buzz(int targetPin, long frequency, long length) { + digitalWrite(13,HIGH); + long delayValue = 1000000/frequency/2; // calculate the delay value between transitions + //// 1 second's worth of microseconds, divided by the frequency, then split in half since + //// there are two phases to each cycle + long numCycles = frequency * length/ 1000; // calculate the number of cycles for proper timing + //// multiply frequency, which is really cycles per second, by the number of seconds to + //// get the total number of cycles to produce + for (long i=0; i < numCycles; i++){ // for the calculated length of time... + digitalWrite(targetPin,HIGH); // write the buzzer pin high to push out the diaphram + delayMicroseconds(delayValue); // wait for the calculated delay value + digitalWrite(targetPin,LOW); // write the buzzer pin low to pull back the diaphram + delayMicroseconds(delayValue); // wait again or the calculated delay value + } + digitalWrite(13,LOW); + +} diff --git a/piezo/piezo_mario_tune/pitches.h b/piezo/piezo_mario_tune/pitches.h new file mode 100644 index 0000000..55c7d54 --- /dev/null +++ b/piezo/piezo_mario_tune/pitches.h @@ -0,0 +1,95 @@ +/************************************************* + * Public Constants + *************************************************/ + +#define NOTE_B0 31 +#define NOTE_C1 33 +#define NOTE_CS1 35 +#define NOTE_D1 37 +#define NOTE_DS1 39 +#define NOTE_E1 41 +#define NOTE_F1 44 +#define NOTE_FS1 46 +#define NOTE_G1 49 +#define NOTE_GS1 52 +#define NOTE_A1 55 +#define NOTE_AS1 58 +#define NOTE_B1 62 +#define NOTE_C2 65 +#define NOTE_CS2 69 +#define NOTE_D2 73 +#define NOTE_DS2 78 +#define NOTE_E2 82 +#define NOTE_F2 87 +#define NOTE_FS2 93 +#define NOTE_G2 98 +#define NOTE_GS2 104 +#define NOTE_A2 110 +#define NOTE_AS2 117 +#define NOTE_B2 123 +#define NOTE_C3 131 +#define NOTE_CS3 139 +#define NOTE_D3 147 +#define NOTE_DS3 156 +#define NOTE_E3 165 +#define NOTE_F3 175 +#define NOTE_FS3 185 +#define NOTE_G3 196 +#define NOTE_GS3 208 +#define NOTE_A3 220 +#define NOTE_AS3 233 +#define NOTE_B3 247 +#define NOTE_C4 262 +#define NOTE_CS4 277 +#define NOTE_D4 294 +#define NOTE_DS4 311 +#define NOTE_E4 330 +#define NOTE_F4 349 +#define NOTE_FS4 370 +#define NOTE_G4 392 +#define NOTE_GS4 415 +#define NOTE_A4 440 +#define NOTE_AS4 466 +#define NOTE_B4 494 +#define NOTE_C5 523 +#define NOTE_CS5 554 +#define NOTE_D5 587 +#define NOTE_DS5 622 +#define NOTE_E5 659 +#define NOTE_F5 698 +#define NOTE_FS5 740 +#define NOTE_G5 784 +#define NOTE_GS5 831 +#define NOTE_A5 880 +#define NOTE_AS5 932 +#define NOTE_B5 988 +#define NOTE_C6 1047 +#define NOTE_CS6 1109 +#define NOTE_D6 1175 +#define NOTE_DS6 1245 +#define NOTE_E6 1319 +#define NOTE_F6 1397 +#define NOTE_FS6 1480 +#define NOTE_G6 1568 +#define NOTE_GS6 1661 +#define NOTE_A6 1760 +#define NOTE_AS6 1865 +#define NOTE_B6 1976 +#define NOTE_C7 2093 +#define NOTE_CS7 2217 +#define NOTE_D7 2349 +#define NOTE_DS7 2489 +#define NOTE_E7 2637 +#define NOTE_F7 2794 +#define NOTE_FS7 2960 +#define NOTE_G7 3136 +#define NOTE_GS7 3322 +#define NOTE_A7 3520 +#define NOTE_AS7 3729 +#define NOTE_B7 3951 +#define NOTE_C8 4186 +#define NOTE_CS8 4435 +#define NOTE_D8 4699 +#define NOTE_DS8 4978 + + diff --git a/serial/README b/serial/README new file mode 100644 index 0000000..6e1c3f6 --- /dev/null +++ b/serial/README @@ -0,0 +1,8 @@ +- Simple serial communication 2 arduino: switch 1 and LED 2 +- Serial Parser: Examples -> strings +- Serial to RGB LED + + +- I2C +- SPI +- display lcd , clock, ethernet, gyro, diff --git a/shift_register/shiftOut_binary_count/shiftOut_binary_count.ino b/shift_register/shiftOut_binary_count/shiftOut_binary_count.ino new file mode 100644 index 0000000..6878989 --- /dev/null +++ b/shift_register/shiftOut_binary_count/shiftOut_binary_count.ino @@ -0,0 +1,57 @@ + +//**************************************************************// +// Name : shiftOutCode, Hello World +// Author : Carlyn Maw,Tom Igoe, David A. Mellis +// Date : 25 Oct, 2006 +// Modified: 23 Mar 2010 +// Version : 2.0 +// Notes : Code for using a 74HC595 Shift Register // +// : to count from 0 to 255 +//**************************************************************** + +//Pin connected to ST_CP of 74HC595 +int latchPin = 8; +//Pin connected to SH_CP of 74HC595 +int clockPin = 12; +////Pin connected to DS of 74HC595 +int dataPin = 11; + + + +void setup() { + //set pins to output so you can control the shift register + pinMode(latchPin, OUTPUT); + pinMode(clockPin, OUTPUT); + pinMode(dataPin, OUTPUT); + // Serial Debug + Serial.begin(9600); + Serial.print("Decimal"); + Serial.print("\t"); + Serial.println("Binary"); +} + +void loop() { + // count from 0 to 255 and display the number + // on the LEDs + for (int numberToDisplay = 0; numberToDisplay < 256; numberToDisplay++) { + // take the latchPin low so + // the LEDs don't change while you're sending in bits: + digitalWrite(latchPin, LOW); + + // shift out the bits: + shiftOut(dataPin, clockPin, SBFIRST, numberToDisplay); + + //take the latch pin high so the LEDs will light up: + digitalWrite(latchPin, HIGH); + // Serial Debug + Serial.print(numberToDisplay); + Serial.print("\t"); + Serial.println(numberToDisplay, BIN); + // pause before next value: + delay(200); + } +} + + + + diff --git a/shift_register/shift_register_8bit/shift_register_8bit.ino b/shift_register/shift_register_8bit/shift_register_8bit.ino new file mode 100644 index 0000000..7ce253e --- /dev/null +++ b/shift_register/shift_register_8bit/shift_register_8bit.ino @@ -0,0 +1,43 @@ +//**************************************************************// +// Name : shiftOutCode, Hello World +// Author : Carlyn Maw,Tom Igoe, David A. Mellis +// Date : 25 Oct, 2006 +// Modified: 23 Mar 2010 +// Version : 2.0 +// Notes : Code for using a 74HC595 Shift Register +// +// : to count from 0 to 255 +//**************************************************************** + + +//Pin connected to ST_CP of 74HC595 +int latchPin = 8; +//Pin connected to SH_CP of 74HC595 +int clockPin = 12; +////Pin connected to DS of 74HC595 +int dataPin = 11; +void setup() { + //set pins to output so you can control the shift register + pinMode(latchPin, OUTPUT); + +pinMode(clockPin, OUTPUT); +pinMode(dataPin, OUTPUT); +} +void loop() { + // count from 0 to 255 and display the number + // on the LEDs + for (int numberToDisplay = 0; numberToDisplay < 256; numberToDisplay++) { + // take the latchPin low so + // the LEDs don’t change while you’re sending in bits: + digitalWrite(latchPin, LOW); + // shift out the bits: + shiftOut(dataPin, clockPin, MSBFIRST, numberToDisplay); + //take the latch pin high so the LEDs will light up: + digitalWrite(latchPin, HIGH); + // pause before next value: + delay(500); + } +} + + + diff --git a/shift_register/shift_register_custom_pattern_4/shift_register_custom_pattern_4.ino b/shift_register/shift_register_custom_pattern_4/shift_register_custom_pattern_4.ino new file mode 100644 index 0000000..c5e1da7 --- /dev/null +++ b/shift_register/shift_register_custom_pattern_4/shift_register_custom_pattern_4.ino @@ -0,0 +1,136 @@ + +/* + Shift Register Example + Turning on the outputs of a 74HC595 using an array + + Hardware: + * 74HC595 shift register + * LEDs attached to each of the outputs of the shift register + + */ +//Pin connected to ST_CP of 74HC595 +int latchPin = 8; +//Pin connected to SH_CP of 74HC595 +int clockPin = 12; +////Pin connected to DS of 74HC595 +int dataPin = 11; + +//holders for infromation you're going to pass to shifting function +byte data; +byte dataArray[10]; + +void setup() { + //set pins to output because they are addressed in the main loop + pinMode(latchPin, OUTPUT); + Serial.begin(9600); + + //Arduino doesn't seem to have a way to write binary straight into the code + //so these values are in HEX. Decimal would have been fine, too. + dataArray[0] = 0xFF; //11111111 + dataArray[1] = 0xFE; //11111110 + dataArray[2] = 0xFC; //11111100 + dataArray[3] = 0xF8; //11111000 + dataArray[4] = 0xF0; //11110000 + dataArray[5] = 0xE0; //11100000 + dataArray[6] = 0xC0; //11000000 + dataArray[7] = 0x80; //10000000 + dataArray[8] = 0x00; //00000000 + dataArray[9] = 0x38; //11100000 + + //function that blinks all the LEDs + //gets passed the number of blinks and the pause time + blinkAll_2Bytes(2,500); +} + +void loop() { + + for (int j = 0; j < 10; j++) { + //load the light sequence you want from array + data = dataArray[j]; + //ground latchPin and hold low for as long as you are transmitting + digitalWrite(latchPin, 0); + //move 'em out + shiftOut(dataPin, clockPin, data); + //return the latch pin high to signal chip that it + //no longer needs to listen for information + digitalWrite(latchPin, 1); + delay(300); + } +} + + + +// the heart of the program +void shiftOut(int myDataPin, int myClockPin, byte myDataOut) { + // This shifts 8 bits out MSB first, + //on the rising edge of the clock, + //clock idles low + + //internal function setup + int i=0; + int pinState; + pinMode(myClockPin, OUTPUT); + pinMode(myDataPin, OUTPUT); + + //clear everything out just in case to + //prepare shift register for bit shifting + digitalWrite(myDataPin, 0); + digitalWrite(myClockPin, 0); + + //for each bit in the byte myDataOut� + //NOTICE THAT WE ARE COUNTING DOWN in our for loop + //This means that %00000001 or "1" will go through such + //that it will be pin Q0 that lights. + for (i=7; i>=0; i--) { + digitalWrite(myClockPin, 0); + + //if the value passed to myDataOut and a bitmask result + // true then... so if we are at i=6 and our value is + // %11010100 it would the code compares it to %01000000 + // and proceeds to set pinState to 1. + if ( myDataOut & (1<= count){ + index = 0; + } +} + diff --git a/shift_register/shift_register_pattern/sketch_jan27c/sketch_jan27c.ino b/shift_register/shift_register_pattern/sketch_jan27c/sketch_jan27c.ino new file mode 100644 index 0000000..c5e1da7 --- /dev/null +++ b/shift_register/shift_register_pattern/sketch_jan27c/sketch_jan27c.ino @@ -0,0 +1,136 @@ + +/* + Shift Register Example + Turning on the outputs of a 74HC595 using an array + + Hardware: + * 74HC595 shift register + * LEDs attached to each of the outputs of the shift register + + */ +//Pin connected to ST_CP of 74HC595 +int latchPin = 8; +//Pin connected to SH_CP of 74HC595 +int clockPin = 12; +////Pin connected to DS of 74HC595 +int dataPin = 11; + +//holders for infromation you're going to pass to shifting function +byte data; +byte dataArray[10]; + +void setup() { + //set pins to output because they are addressed in the main loop + pinMode(latchPin, OUTPUT); + Serial.begin(9600); + + //Arduino doesn't seem to have a way to write binary straight into the code + //so these values are in HEX. Decimal would have been fine, too. + dataArray[0] = 0xFF; //11111111 + dataArray[1] = 0xFE; //11111110 + dataArray[2] = 0xFC; //11111100 + dataArray[3] = 0xF8; //11111000 + dataArray[4] = 0xF0; //11110000 + dataArray[5] = 0xE0; //11100000 + dataArray[6] = 0xC0; //11000000 + dataArray[7] = 0x80; //10000000 + dataArray[8] = 0x00; //00000000 + dataArray[9] = 0x38; //11100000 + + //function that blinks all the LEDs + //gets passed the number of blinks and the pause time + blinkAll_2Bytes(2,500); +} + +void loop() { + + for (int j = 0; j < 10; j++) { + //load the light sequence you want from array + data = dataArray[j]; + //ground latchPin and hold low for as long as you are transmitting + digitalWrite(latchPin, 0); + //move 'em out + shiftOut(dataPin, clockPin, data); + //return the latch pin high to signal chip that it + //no longer needs to listen for information + digitalWrite(latchPin, 1); + delay(300); + } +} + + + +// the heart of the program +void shiftOut(int myDataPin, int myClockPin, byte myDataOut) { + // This shifts 8 bits out MSB first, + //on the rising edge of the clock, + //clock idles low + + //internal function setup + int i=0; + int pinState; + pinMode(myClockPin, OUTPUT); + pinMode(myDataPin, OUTPUT); + + //clear everything out just in case to + //prepare shift register for bit shifting + digitalWrite(myDataPin, 0); + digitalWrite(myClockPin, 0); + + //for each bit in the byte myDataOut� + //NOTICE THAT WE ARE COUNTING DOWN in our for loop + //This means that %00000001 or "1" will go through such + //that it will be pin Q0 that lights. + for (i=7; i>=0; i--) { + digitalWrite(myClockPin, 0); + + //if the value passed to myDataOut and a bitmask result + // true then... so if we are at i=6 and our value is + // %11010100 it would the code compares it to %01000000 + // and proceeds to set pinState to 1. + if ( myDataOut & (1< 0) { + // ASCII '0' through '9' characters are + // represented by the values 48 through 57. + // so if the user types a number from 0 through 9 in ASCII, + // you can subtract 48 to get the actual value: + int bitToSet = Serial.read() - 48; + + // write to the shift register with the correct bit set high: + registerWrite(bitToSet, HIGH); + } +} + +// This method sends bits to the shift register: + +void registerWrite(int whichPin, int whichState) { +// the bits you want to send + byte bitsToSend = 0; + + // turn off the output so the pins don't light up + // while you're shifting bits: + digitalWrite(latchPin, LOW); + + // turn on the next highest bit in bitsToSend: + bitWrite(bitsToSend, whichPin, whichState); + + // shift the bits out: + shiftOut(dataPin, clockPin, MSBFIRST, bitsToSend); + + // turn on the output so the LEDs can light up: + digitalWrite(latchPin, HIGH); + delay(300); + +} + -- 2.39.2