18-heater Arduino code

Size: px
Start display at page:

Download "18-heater Arduino code"

Transcription

1 18-heater Arduino code Modified from original code by Charith Fernanado: #include <DueTimer.h> // Creation of variables volatile int idimmer=0; volatile boolean read_data=0; // Include timer for Arduino Due board // Integer variable used to delay the start of the dimming loop // Boolean to tell the Arduino Due whether to read serial data volatile int i1=0; // Variable used as a counter for heater 1 volatile int i2=0; // Variable used as a counter for heater 2 volatile int i3=0; volatile int i4=0; volatile int i5=0; volatile int i6=0; volatile int i7=0; volatile int i8=0; volatile int i9=0; volatile int i10=0; volatile int i11=0; volatile int i12=0; volatile int i13=0; volatile int i14=0; volatile int i15=0; volatile int i16=0; volatile int i17=0; volatile int i18=0; volatile boolean zero_cross1=0; // Boolean that switches when input waveform crosses zero // Definition of physical pin for each heater int AC_pin1 = 35; // Heater 1 is connected to physical pin 35 int AC_pin2 = 36; // Heater 2 is connected to physical pin 36 int AC_pin3 = 37; int AC_pin4 = 38; int AC_pin5 = 39; int AC_pin6 = 40; int AC_pin7 = 41; int AC_pin8 = 44; int AC_pin9 = 45; int AC_pin10 = 46; int AC_pin11 = 47; int AC_pin12 = 48; int AC_pin13 = 49; int AC_pin14 = 50; int AC_pin15 = 51; int AC_pin16 = 52; int AC_pin17 = 53; int AC_pin18 = 3;

2 int dim1 = 64; // Initial dimming level of heater 1 (0-64); 0 = on, 64 = off. // This means that we have 64 steps of dimming int dim2 = 64; // Initial dimming level of heater 2 int dim3 = 64; int dim4 = 64; int dim5 = 64; int dim6 = 64; int dim7 = 64; int dim8 = 64; int dim9 = 64; int dim10 = 64; int dim11 = 64; int dim12 = 64; int dim13 = 64; int dim14 = 64; int dim15 = 64; int dim16 = 64; int dim17 = 64; int dim18 = 64; // Beginning of the code void setup(){ pinmode(ac_pin1, OUTPUT); pinmode(ac_pin2, OUTPUT); pinmode(ac_pin3, OUTPUT); pinmode(ac_pin4, OUTPUT); pinmode(ac_pin5, OUTPUT); pinmode(ac_pin6, OUTPUT); pinmode(ac_pin7, OUTPUT); pinmode(ac_pin8, OUTPUT); pinmode(ac_pin9, OUTPUT); pinmode(ac_pin10, OUTPUT); pinmode(ac_pin11, OUTPUT); pinmode(ac_pin12, OUTPUT); pinmode(ac_pin13, OUTPUT); pinmode(ac_pin14, OUTPUT); pinmode(ac_pin15, OUTPUT); pinmode(ac_pin16, OUTPUT); pinmode(ac_pin17, OUTPUT); pinmode(ac_pin18, OUTPUT); attachinterrupt(2, zero_crosss_int,rising); Serial.begin(115200); Timer3.attachInterrupt(counter).start(131); // Start of setup loop // Define pins as outputs to drive triacs // Define pin 2 as the input signal of the // zero-cross signal and call the function // at the zero-cross // Start bit/sec // Define timer #3 to start the function // counter every 131 us = 1/64 th of the // half sine-wave period 8.33ms Timer1.attachInterrupt(dim_counter).start(50); // Define the timer #1 to start the function // dim_counter every 50 us

3 // End of setup loop void zero_crosss_int(){ // Function triggered by zero crossing // This loop starts the reading of the serial buffer at each zero-cross. idimmer=0; // Initialize the variable idimmer read_data=true; // Tell Arduino to start reading the data in the serial buffer // End of zero-cross loop // Allow 2300 us for reading the serial buffer delay loop void dim_counter(){ // Definition of dim_counter loop // This loop introduces a delay of 2300 us to match the delay between the appearance of the zero- // cross signal and the actual zero-crossing event. This delay is just enough time for the serial // buffer to be read. Just inserting a delay here would cause the serial read to be stopped. if (idimmer==46){ read_data=false; // dim_counter is started every 50us. Thus if idimmer==46, // 2300us have elapsed since the triggering zero-crossing // Tell Arduino to stop reading the data in the serial buffer zero_cross1 = true; // Set the Boolean to true to tell the dimming function that a // delayed zero-crossing has actually occurred i1=0; // Initialize variable for dimming sequence ( heater 1) i2=0; // Initialize variable for dimming sequence ( heater 2) i3=0; i4=0; i5=0; i6=0; i7=0; i8=0; i9=0; i10=0; i11=0; i12=0; i13=0; i14=0; i15=0; i16=0; i17=0; i18=0; digitalwrite(ac_pin1, LOW); // Turn heater 1 OFF, or leave it off if already off digitalwrite(ac_pin2, LOW); // Turn heater 2 OFF, or leave it off if already off digitalwrite(ac_pin3, LOW); digitalwrite(ac_pin4, LOW); digitalwrite(ac_pin5, LOW); digitalwrite(ac_pin6, LOW); digitalwrite(ac_pin7, LOW); digitalwrite(ac_pin8, LOW); digitalwrite(ac_pin9, LOW); digitalwrite(ac_pin10, LOW);

4 else{ digitalwrite(ac_pin11, LOW); digitalwrite(ac_pin12, LOW); digitalwrite(ac_pin13, LOW); digitalwrite(ac_pin14, LOW); digitalwrite(ac_pin15, LOW); digitalwrite(ac_pin16, LOW); digitalwrite(ac_pin17, LOW); digitalwrite(ac_pin18, LOW); idimmer++; // Increment on the idimmer loop // Until idimmer reaches 46, do nothing idimmer++; // Increment on the idimmer loop // End of the if idimmer==46 loop // End of dim_counter loop // Turn on the triacs at the appropriate times dimmer loop void counter() { // Start of the loop of the actual dimming // Each step is 1/64 th of a half-cycle if(zero_cross1 == true) { // Check that the delayed zero-cross has occurred if(i1>=dim1) { // Check if heater 1 set-point has been reached digitalwrite(ac_pin1, HIGH); // Turn heater 1 ON i1=0; // Reset time step counter of heater 1 zero_cross1=false; // Reset zero-cross Boolean // If set-point has not been reached, continue i1++; if(i2>=dim2) { // For heater 2 digitalwrite(ac_pin2, HIGH); i2=0; i2++; if(i3>=dim3) { digitalwrite(ac_pin3, HIGH); i3=0; i3++; if(i4>=dim4) { digitalwrite(ac_pin4, HIGH); i4=0; i4++; if(i5>=dim5) { digitalwrite(ac_pin5, HIGH);

5 i5=0; i5++; if(i6>=dim6) { digitalwrite(ac_pin6, HIGH); i6=0; i6++; if(i7>=dim7) { digitalwrite(ac_pin7, HIGH); i7=0; i7++; if(i8>=dim8) { digitalwrite(ac_pin8, HIGH); i8=0; i8++; if(i9>=dim9) { digitalwrite(ac_pin9, HIGH); i9=0; i9++; if(i10>=dim10) { digitalwrite(ac_pin10, HIGH); i10=0; i10++; if(i11>=dim11) { digitalwrite(ac_pin11, HIGH); i11=0; i11++; if(i12>=dim12) { digitalwrite(ac_pin12, HIGH); i12=0;

6 i12++; if(i13>=dim13) { digitalwrite(ac_pin13, HIGH); i13=0; i13++; if(i14>=dim14) { digitalwrite(ac_pin14, HIGH); i14=0; i14++; if(i15>=dim15) { digitalwrite(ac_pin15, HIGH); i15=0; i15++; if(i16>=dim16) { digitalwrite(ac_pin16, HIGH); i16=0; i16++; if(i17>=dim17) { digitalwrite(ac_pin17, HIGH); i17=0; i17++; if(i18>=dim18) { digitalwrite(ac_pin18, HIGH); i18=0; i18++; // End of dimming loop for all heaters //Read serial input data read loop

7 void loop() { // Continuously run loop reads serial input data while (read_data==true ) { if (Serial.available() > 0){ if (Serial.find("s")) { // Find the character s which defines the // beginning of the string (example: s3,17,60 ) dim1 = Serial.parseInt(); // Look for the next valid integer in the // incoming serial stream and set as // set it as the heater 1 setpoint dim2 = Serial.parseInt(); dim3 = Serial.parseInt(); dim4 = Serial.parseInt(); dim5 = Serial.parseInt(); dim6 = Serial.parseInt(); dim7 = Serial.parseInt(); dim8 = Serial.parseInt(); dim9 = Serial.parseInt(); dim10 = Serial.parseInt(); dim11 = Serial.parseInt(); dim12 = Serial.parseInt(); dim13 = Serial.parseInt(); dim14 = Serial.parseInt(); dim15 = Serial.parseInt(); dim16 = Serial.parseInt(); dim17 = Serial.parseInt(); dim18 = Serial.parseInt(); else{ dim1 = 64; dim2 = 64; dim3 = 64; dim4 = 64; dim5 = 64; dim6 = 64; dim7 = 64; dim8 = 64; dim9 = 64; dim10 = 64; dim11 = 64; dim12 = 64; dim13 = 64; dim14 = 64; dim15 = 64; dim16 = 64; dim17 = 64; dim18 = 64; // If the serial buffer is empty, then make all heater // set-points equal to 64; i.e., turn all heaters off

Arduino Credit Card Decoder Code

Arduino Credit Card Decoder Code 1 of 5 5/21/2011 10:00 AM " Account Projects Code & Files Forums Design Sketches Photos Videos Chat Arduino Credit Card Decoder Code Home 2 of 5 5/21/2011 10:00 AM Articles Arduino Credit Card Decoder

More information

4Serial SIK BINDER //77

4Serial SIK BINDER //77 4Serial SIK BINDER //77 SIK BINDER //78 Serial Communication Serial is used to communicate between your computer and the RedBoard as well as between RedBoard boards and other devices. Serial uses a serial

More information

MEDIS Module 2. Microcontroller based systems for controlling industrial processes. Chapter 4: Timer and interrupts. M. Seyfarth, Version 0.

MEDIS Module 2. Microcontroller based systems for controlling industrial processes. Chapter 4: Timer and interrupts. M. Seyfarth, Version 0. MEDIS Module 2 Microcontroller based systems for controlling industrial processes Chapter 4: Timer and interrupts M. Seyfarth, Version 0.1 Steuerungstechnik 1: Speicherprogrammierbare Steuerungstechnik

More information

Microcontrollers and Interfacing week 8 exercises

Microcontrollers and Interfacing week 8 exercises 2 HARDWARE DEBOUNCING Microcontrollers and Interfacing week 8 exercises 1 More digital input When using a switch for digital input we always need a pull-up resistor. For convenience, the microcontroller

More information

Unit 13 Timers and Counters

Unit 13 Timers and Counters Unit 13 Timers and Counters 1 2 Review of some key concepts from the first half of the semester A BRIEF SUMMARY 3 A Few Big Ideas 1 Setting and clearing bits in a register tells the hardware what do and

More information

ATmega Interrupts. Reading. The AVR Microcontroller and Embedded Systems using Assembly and C) by Muhammad Ali Mazidi, Sarmad Naimi, and Sepehr Naimi

ATmega Interrupts. Reading. The AVR Microcontroller and Embedded Systems using Assembly and C) by Muhammad Ali Mazidi, Sarmad Naimi, and Sepehr Naimi 1 P a g e ATmega Interrupts Reading The AVR Microcontroller and Embedded Systems using Assembly and C) by Muhammad Ali Mazidi, Sarmad Naimi, and Sepehr Naimi Chapter 10: AVR Interrupt Programming in Assembly

More information

Arduino Prof. Dr. Magdy M. Abdelhameed

Arduino Prof. Dr. Magdy M. Abdelhameed Course Code: MDP 454, Course Name:, Second Semester 2014 Arduino What is Arduino? Microcontroller Platform Okay but what s a Microcontroller? Tiny, self-contained computers in an IC Often contain peripherals

More information

Arrays and Loops. Programming for Engineers Winter Andreas Zeller, Saarland University

Arrays and Loops. Programming for Engineers Winter Andreas Zeller, Saarland University Arrays and Loops Programming for Engineers Winter 2015 Andreas Zeller, Saarland University Datatypes millis() has the type unsigned long integer values in [0 2 32 1] Usual integer numbers ( int ) are

More information

Chapter 2 The Basic Functions

Chapter 2 The Basic Functions Chapter 2 The Basic Functions 2.1 Overview The code you learn to write for your Arduino is very similar to the code you write in any other computer language. This implies that all the basic concepts remain

More information

Rotary Encoder Basics

Rotary Encoder Basics Rotary Encoder Basics A rotary encoder has a fixed number of positions per revolution. These positions are easily felt as small clicks you turn the encoder. The Keyes module that I have has thirty of these

More information

Arduino: Serial Monitor Diagrams & Code Brown County Library

Arduino: Serial Monitor Diagrams & Code Brown County Library Arduino: Serial Monitor Diagrams & Code All projects require the use of the serial monitor in your Arduino IDE program (or whatever you are using to transfer code to the Arduino). Project 01: Monitor how

More information

Monitor your home remotely using the Arduino

Monitor your home remotely using the Arduino Monitor your home remotely using the Arduino WiFi Shield How to monitor some data in your home using precisely this Arduino WiFi shield. Along with the Arduino Uno board, the final system will form an

More information

RTC rtc(dst_on); U8GLIB_SH1106_128X64 u8g(u8g_i2c_opt_none U8G_I2C_OPT_DEV_0);

RTC rtc(dst_on); U8GLIB_SH1106_128X64 u8g(u8g_i2c_opt_none U8G_I2C_OPT_DEV_0); #include #include #include #include RTC rtc(dst_on); U8GLIB_SH1106_128X64 u8g(u8g_i2c_opt_none U8G_I2C_OPT_DEV_0); const int WIDTH=128; const int HEIGHT=35; const

More information

General Purpose Programmable Peripheral Devices. Assistant Professor, EC Dept., Sankalchand Patel College of Engg.,Visnagar

General Purpose Programmable Peripheral Devices. Assistant Professor, EC Dept., Sankalchand Patel College of Engg.,Visnagar Chapter 15 General Purpose Programmable Peripheral Devices by Rahul Patel, Assistant Professor, EC Dept., Sankalchand Patel College of Engg.,Visnagar Microprocessor & Interfacing (140701) Rahul Patel 1

More information

Adapted from a lab originally written by Simon Hastings and Bill Ashmanskas

Adapted from a lab originally written by Simon Hastings and Bill Ashmanskas Physics 364 Arduino Lab 1 Adapted from a lab originally written by Simon Hastings and Bill Ashmanskas Vithayathil/Kroll Introduction Last revised: 2014-11-12 This lab introduces you to an electronic development

More information

Energia MSP-430!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1

Energia MSP-430!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1 Energia MSP-430 1 3 Energia 4 4 4 6 8 9 Energia 11 18 2 IIB Energia MSP-430 IIB C C++ 3 Energia Energia MSP-430 Windows Mac OS Linux MSP-430, http://www.energia.nu, Max OS X, windows Linux Mac OS X, energia-

More information

SERIAL COMMUNICATION. _creates a data stream by sending one bit at a me _occurs sequen ally H...E...L...L...O

SERIAL COMMUNICATION. _creates a data stream by sending one bit at a me _occurs sequen ally H...E...L...L...O SERIAL COMMUNICATION Bits, Bytes, Data Rates and Protocols ASCI interpreta on Using terminal to view serial Data Serial Out from Arduino Serial In to Processing SERIAL COMMUNICATION _creates a data stream

More information

Parts List. XBEE/Wifi Adapter board 4 standoffs ¼ inch screws Cable XBEE module or Wifi module

Parts List. XBEE/Wifi Adapter board 4 standoffs ¼ inch screws Cable XBEE module or Wifi module Rover Wifi Module 1 Legal Stuff Stensat Group LLC assumes no responsibility and/or liability for the use of the kit and documentation. There is a 90 day warranty for the Sten-Bot kit against component

More information

MPLAB SIM. MPLAB IDE Software Simulation Engine Microchip Technology Incorporated MPLAB SIM Software Simulation Engine

MPLAB SIM. MPLAB IDE Software Simulation Engine Microchip Technology Incorporated MPLAB SIM Software Simulation Engine MPLAB SIM MPLAB IDE Software Simulation Engine 2004 Microchip Technology Incorporated MPLAB SIM Software Simulation Engine Slide 1 Welcome to this web seminar on MPLAB SIM, the software simulator that

More information

This is the Arduino Uno: This is the Arduino motor shield: Digital pins (0-13) Ground Rail

This is the Arduino Uno: This is the Arduino motor shield: Digital pins (0-13) Ground Rail Reacting to Sensors In this tutorial we will be going over how to program the Arduino to react to sensors. By the end of this workshop you will have an understanding of how to use sensors with the Arduino

More information

Digital Design through. Arduino

Digital Design through. Arduino Digital Design through 1 Arduino G V V Sharma Contents 1 Display Control through Hardware 2 1.1 Powering the Display.................................. 2 1.2 Controlling the Display.................................

More information

Lab 02 Arduino 數位感測訊號處理, SPI I2C 介面實驗. More Arduino Digital Signal Process

Lab 02 Arduino 數位感測訊號處理, SPI I2C 介面實驗. More Arduino Digital Signal Process Lab 02 Arduino 數位感測訊號處理, SPI I2C 介面實驗 More Arduino Digital Signal Process Blink Without Delay Sometimes you need to do two things at once. For example you might want to blink an LED (or some other timesensitive

More information

Parts List. XBEE/Wifi Adapter board 4 standoffs ¼ inch screws Cable XBEE module or Wifi module

Parts List. XBEE/Wifi Adapter board 4 standoffs ¼ inch screws Cable XBEE module or Wifi module Rover Wifi Module 1 Legal Stuff Stensat Group LLC assumes no responsibility and/or liability for the use of the kit and documentation. There is a 90 day warranty for the Sten-Bot kit against component

More information

Setup Examples. NetArrays Project Program Development

Setup Examples. NetArrays Project Program Development Setup Examples NetArrays Project Program Development NetArrays Project Program Development Example 2005, 2007, 2008, 2009 RTP Corporation Not for reproduction in any printed or electronic media without

More information

Lecture 7. Processing Development Environment (or PDE)

Lecture 7. Processing Development Environment (or PDE) Lecture 7 Processing Development Environment (or PDE) Processing Class Overview What is Processing? Installation and Intro. Serial Comm. from Arduino to Processing Drawing a dot & controlling position

More information

Arduino Part 3. Introductory Medical Device Prototyping

Arduino Part 3. Introductory Medical Device Prototyping Introductory Medical Device Prototyping Arduino Part 3, http://saliterman.umn.edu/ Department of Biomedical Engineering, University of Minnesota More Arduino Functions More functions: Math functions Trigonometry

More information

3 Wire LED Module (SKU:DFR0090)

3 Wire LED Module (SKU:DFR0090) 3 Wire LED Module (SKU:DFR0090) Contents 1 Introduction 2 Connection 3 Pinout Diagram 4 Sample Code 4.1 Test Procedure 4.2 Operating procedure Introduction This is 8 digital bits serial LED display. It

More information

Note. The above image and many others are courtesy of - this is a wonderful resource for designing circuits.

Note. The above image and many others are courtesy of   - this is a wonderful resource for designing circuits. Robotics and Electronics Unit 2. Arduino Objectives. Students will understand the basic characteristics of an Arduino Uno microcontroller. understand the basic structure of an Arduino program. know how

More information

Laboratory 5 Communication Interfaces

Laboratory 5 Communication Interfaces Laboratory 5 Communication Interfaces Embedded electronics refers to the interconnection of circuits (micro-processors or other integrated circuits) with the goal of creating a unified system. In order

More information

BASIC ARDUINO WORKSHOP. Mr. Aldwin and Mr. Bernardo

BASIC ARDUINO WORKSHOP. Mr. Aldwin and Mr. Bernardo BASIC ARDUINO WORKSHOP Mr. Aldwin and Mr. Bernardo 1 BASIC ARDUINO WORKSHOP Course Goals Introduce Arduino Hardware and Understand Input Software and Output Create simple project 2 Arduino Open-source

More information

Introduction to Microprocessors: Arduino

Introduction to Microprocessors: Arduino Introduction to Microprocessors: Arduino tswsl1989@sucs.org October 7, 2013 What is an Arduino? Open Source Reference designs for hardware Firmware tools + GUI Mostly based around 8-bit Atmel AVR chips

More information

Goal: Strengthen our understanding of C and program our Mudduino boards

Goal: Strengthen our understanding of C and program our Mudduino boards Goal: Strengthen our understanding of C and program our Mudduino boards #include #define myarraysize 10 int myarray[myarraysize] = 34, 18, -12, 7, 5; int i; printf("values are: ["); for(i=0;

More information

Lab 4 - Asynchronous Serial Communications

Lab 4 - Asynchronous Serial Communications Lab 4 - Asynchronous Serial Communications Part 1 - Software Loopback In serial communications one of the important tools we have that allows us to verify the communications channel is working properly

More information

e-pg Pathshala Subject: Computer Science Paper: Embedded System Module: Interrupt Programming in Embedded C Module No: CS/ES/20 Quadrant 1 e-text

e-pg Pathshala Subject: Computer Science Paper: Embedded System Module: Interrupt Programming in Embedded C Module No: CS/ES/20 Quadrant 1 e-text e-pg Pathshala Subject: Computer Science Paper: Embedded System Module: Interrupt Programming in Embedded C Module No: CS/ES/20 Quadrant 1 e-text In this lecture embedded C program for interrupt handling

More information

Freescale Semiconductor, I

Freescale Semiconductor, I nc. Application Note Rev. 0, 4/2004 Using the HCS12X PIT as a 24-bit Elapsed Timer By Stephen Pickering 8/16-bit Systems Group East Kilbride, Scotland Introduction The HCS12X Programmable Interrupt Timer

More information

Process Synchronization

Process Synchronization Process Synchronization Concurrent access to shared data may result in data inconsistency Multiple threads in a single process Maintaining data consistency requires mechanisms to ensure the orderly execution

More information

Counter & LED (LED Blink)

Counter & LED (LED Blink) 1 T.R.E. Meeting #1 Counter & LED (LED Blink) September 17, 2017 Contact Info for Today s Lesson: President Ryan Muller mullerr@vt.edu 610-573-1890 Learning Objectives: Learn how to use the basics of Arduino

More information

Lab 8. Arduino and WiFi - IoT applications

Lab 8. Arduino and WiFi - IoT applications Lab 8. Arduino and WiFi - IoT applications IoT - Internet of Things is a recent trend that refers to connecting smart appliances and electronics such as microcontrollers and sensors to the internet. In

More information

Connecting Arduino to Processing

Connecting Arduino to Processing Connecting Arduino to Processing Introduction to Processing So, you ve blinked some LEDs with Arduino, and maybe you ve even drawn some pretty pictures with Processing - what s next? At this point you

More information

Arduino Board Design. Nicholas Skadberg 4/30/09 EE290. Dr. Pushkin Kachroo

Arduino Board Design. Nicholas Skadberg 4/30/09 EE290. Dr. Pushkin Kachroo Arduino Board Design Nicholas Skadberg 4/30/09 EE290 Dr. Pushkin Kachroo Abstract In an effort to further understand the concept of digital control using a microprocessor, a simple serial output device

More information

genie.attacheventhandler(mygenieeventhandler); // Attach the user function Event Handler for processing events

genie.attacheventhandler(mygenieeventhandler); // Attach the user function Event Handler for processing events #include #include #include //#include Genie genie; #define RESETLINE 4 Timer t1,t4,t2; int needsave = 1; int timesince = 0; int pulses, A_SIG = 0, B_SIG

More information

XC Input and Output. 1 Outputting Data

XC Input and Output. 1 Outputting Data XC Input and Output IN THIS DOCUMENT Outputting Data Inputting Data Waiting for a Condition on an Input Pin Controlling I/O Data Rates with Timers Case Study: UART (Part 1) Responding to Multiple Inputs

More information

The Big Idea: Background: About Serial

The Big Idea: Background: About Serial Lesson 6 Lesson 6: Serial Serial Input Input The Big Idea: Information coming into an Arduino sketch is called input. This lesson focuses on text in the form of characters that come from the user via the

More information

analogwrite(); The analogwrite function writes an analog value (PWM wave) to a PWM-enabled pin.

analogwrite(); The analogwrite function writes an analog value (PWM wave) to a PWM-enabled pin. analogwrite(); The analogwrite function writes an analog value (PWM wave) to a PWM-enabled pin. Syntax analogwrite(pin, value); For example: analogwrite(2, 255); or analogwrite(13, 0); Note: Capitalization

More information

Serial.begin ( ); Serial.println( ); analogread ( ); map ( );

Serial.begin ( ); Serial.println( ); analogread ( ); map ( ); Control and Serial.begin ( ); Serial.println( ); analogread ( ); map ( ); A system output can be changed through the use of knobs, motion, or environmental conditions. Many electronic systems in our world

More information

University of Portland EE 271 Electrical Circuits Laboratory. Experiment: Arduino

University of Portland EE 271 Electrical Circuits Laboratory. Experiment: Arduino University of Portland EE 271 Electrical Circuits Laboratory Experiment: Arduino I. Objective The objective of this experiment is to learn how to use the Arduino microcontroller to monitor switches and

More information

Creating Java Programs with Greenfoot

Creating Java Programs with Greenfoot Creating Java Programs with Greenfoot Using Loops, Variables, and Strings 1 Copyright 2012, Oracle and/or its affiliates. All rights Overview This lesson covers the following topics: Create a while loop

More information

The short program to blink the red LED used the delay() function. This is very handy function for introducing a short time delays into programs.

The short program to blink the red LED used the delay() function. This is very handy function for introducing a short time delays into programs. Timing The short program to blink the red LED used the delay() function. This is very handy function for introducing a short time delays into programs. It helps buffer the differing time scales of humans

More information

EXPERIMENT 7 Please visit https://www.arduino.cc/en/reference/homepage to learn all features of arduino before you start the experiments

EXPERIMENT 7 Please visit https://www.arduino.cc/en/reference/homepage to learn all features of arduino before you start the experiments EXPERIMENT 7 Please visit https://www.arduino.cc/en/reference/homepage to learn all features of arduino before you start the experiments TEMPERATURE MEASUREMENT AND CONTROL USING LM35 Purpose: To measure

More information

SquareWear Programming Reference 1.0 Oct 10, 2012

SquareWear Programming Reference 1.0 Oct 10, 2012 Content: 1. Overview 2. Basic Data Types 3. Pin Functions 4. main() and initsquarewear() 5. Digital Input/Output 6. Analog Input/PWM Output 7. Timing, Delay, Reset, and Sleep 8. USB Serial Functions 9.

More information

PROJECT FINAL: WEARABLE

PROJECT FINAL: WEARABLE PROJECT FINAL: WEARABLE David Snow Wearable Computing Jackson McConnell Dec/09/2014 DEVICE: iris Project iris is a device that gamifies the experience of your daily drive. This is a device for all those

More information

Interrupts Arduino, AVR, and deep dark programming secrets. What is an Interrupt?

Interrupts Arduino, AVR, and deep dark programming secrets. What is an Interrupt? Interrupts Arduino, AVR, and deep dark programming secrets What is an Interrupt? A transfer of program control that is not directed by the programmer Like a phone call in the middle of a conversation Stop

More information

Workshop on Microcontroller Based Project Development

Workshop on Microcontroller Based Project Development Organized by: EEE Club Workshop on Microcontroller Based Project Development Presented By Mohammed Abdul Kader Assistant Professor, Dept. of EEE, IIUC Email:kader05cuet@gmail.com Website: kader05cuet.wordpress.com

More information

Contents. List of Figures. TermDriver Datasheet 1. 1 Overview 2. 2 Features 2. 3 Installation with Arduino 3

Contents. List of Figures. TermDriver Datasheet 1. 1 Overview 2. 2 Features 2. 3 Installation with Arduino 3 TermDriver Datasheet 1 Contents 1 Overview 2 2 Features 2 3 Installation with Arduino 3 4 Operation 4 4.1 ANSI escape codes......................... 5 4.2 High-resolution modes........................

More information

Arduino - DigitalReadSerial

Arduino - DigitalReadSerial arduino.cc Arduino - DigitalReadSerial 5-6 minutes Digital Read Serial This example shows you how to monitor the state of a switch by establishing serial communication between your Arduino or Genuino and

More information

E11 Lecture 4: More C!!! Profs. David Money Harris & Sarah Harris Fall 2011

E11 Lecture 4: More C!!! Profs. David Money Harris & Sarah Harris Fall 2011 E11 Lecture 4: More C!!! Profs. David Money Harris & Sarah Harris Fall 2011 Outline Logistics Serial Input Physical Inputs/Outputs Randomness Operators Control Statements Logistics Logistics Tutoring hours:

More information

Serial 8Channel AC 230VSSR and Dimmer

Serial 8Channel AC 230VSSR and Dimmer Serial 8Channel AC 230VSSR and Dimmer www.researchdesignlab.com Page 1 Contents OVERVIEW... 3 SERIAL 8 CHANNEL AC 230V SSR AND DIMMER... 3 FEATURES... 4 BTA12400 IC... 4 MOC 3021... 5 FIRING ANGLE... 7

More information

Goal: Understand how to write programs for the Mudduino

Goal: Understand how to write programs for the Mudduino Goal: Understand how to write programs for the Mudduino #include int main(void) int i = 0; i = i + 25; while(1) return 0; printf("%d\n, i); i++; // This is template behind Arduino sketches int

More information

Barry the Plant Watering Robot

Barry the Plant Watering Robot Barry the Plant Watering Robot We are going to create the controller board for Barry, a robot who will do some of our plant watering chores for us. We aren t going to build all of Barry, but this will

More information

Introduction to Arduino

Introduction to Arduino Introduction to Arduino Paco Abad May 20 th, 2011 WGM #21 Outline What is Arduino? Where to start Types Shields Alternatives Know your board Installing and using the IDE Digital output Serial communication

More information

More Fun with Timer Interrupts

More Fun with Timer Interrupts More Fun with Timer Interrupts Chords Objective: Play a musical chord each time you press a button: Button RC0 RC1 RC2 Timer Timer0 Timer1 Timer3 RB0 A3 C4 E4 RB1 B3 D4 F4 RB2 C4 E4 G4 Calculations: Assume

More information

Arduino Programming and Interfacing

Arduino Programming and Interfacing Arduino Programming and Interfacing Stensat Group LLC, Copyright 2017 1 Robotic Arm Experimenters Kit 2 Legal Stuff Stensat Group LLC assumes no responsibility and/or liability for the use of the kit and

More information

Introduction to Embedded Systems

Introduction to Embedded Systems Stefan Kowalewski, 4. November 25 Introduction to Embedded Systems Part 2: Microcontrollers. Basics 2. Structure/elements 3. Digital I/O 4. Interrupts 5. Timers/Counters Introduction to Embedded Systems

More information

Sequence structure. The computer executes java statements one after the other in the order in which they are written. Total = total +grade;

Sequence structure. The computer executes java statements one after the other in the order in which they are written. Total = total +grade; Control Statements Control Statements All programs could be written in terms of only one of three control structures: Sequence Structure Selection Structure Repetition Structure Sequence structure The

More information

Arduino: What is it? What can it do?

Arduino: What is it? What can it do? Arduino: What can it do? tswsl1989@sucs.org May 20, 2013 What is an Arduino? According to Arduino: Arduino is a tool for making computers that can sense and control more of the physical world than your

More information

Real Time Data Plotting

Real Time Data Plotting Real Time Data Plotting Introduction This lesson will show how to write a program plot data on a X-Y graph. On the Arduino, write a program to sample a sensor and print the voltage to the Serial interface.

More information

Guide for measurements of Mobile Communications and Quantum Technologies Laboratory

Guide for measurements of Mobile Communications and Quantum Technologies Laboratory Guide for measurements of Mobile Communications and Quantum Technologies Laboratory Arduino/Moteino development Place of measurement: Department of Networked Systems and Services, Mobile Communications

More information

CS111: PROGRAMMING LANGUAGE II

CS111: PROGRAMMING LANGUAGE II CS111: PROGRAMMING LANGUAGE II Computer Science Department Lecture 1(c): Java Basics (II) Lecture Contents Java basics (part II) Conditions Loops Methods Conditions & Branching Conditional Statements A

More information

Supplementary Data. //Timer period in microseconds. We use 1ms resolution

Supplementary Data. //Timer period in microseconds. We use 1ms resolution Supplementary Data Firmware for the Controller //------------------------------------------ // Tube-climber controller // Alar Ainla, 2017 GMW Group Harvard //------------------------------------------

More information

FUNCTIONS For controlling the Arduino board and performing computations.

FUNCTIONS For controlling the Arduino board and performing computations. d i g i t a l R e a d ( ) [Digital I/O] Reads the value from a specified digital pin, either HIGH or LOW. digitalread(pin) pin: the number of the digital pin you want to read HIGH or LOW Sets pin 13 to

More information

Introduction to Arduino. Wilson Wingston Sharon

Introduction to Arduino. Wilson Wingston Sharon Introduction to Arduino Wilson Wingston Sharon cto@workshopindia.com Physical computing Developing solutions that implement a software to interact with elements in the physical universe. 1. Sensors convert

More information

MAE106 Laboratory Exercises Lab # 1 - Laboratory tools

MAE106 Laboratory Exercises Lab # 1 - Laboratory tools MAE106 Laboratory Exercises Lab # 1 - Laboratory tools University of California, Irvine Department of Mechanical and Aerospace Engineering Goals To learn how to use the oscilloscope, function generator,

More information

Hands-on Lab 2: LabVIEW NI-DAQ Basics 2

Hands-on Lab 2: LabVIEW NI-DAQ Basics 2 Hands-on Lab 2: LabVIEW NI-DAQ Basics 2 Recall that the final objective is position regulation using computer-controlled state feedback. Computer control requires both software, like LabVIEW and hardware,

More information

Interrupts & Interrupt Service Routines (ISRs)

Interrupts & Interrupt Service Routines (ISRs) ECE3411 Fall 2015 Lecture 2c. Interrupts & Interrupt Service Routines (ISRs) Marten van Dijk, Syed Kamran Haider Department of Electrical & Computer Engineering University of Connecticut Email: vandijk,

More information

CSCE374 Robotics Fall 2013 Notes on the irobot Create

CSCE374 Robotics Fall 2013 Notes on the irobot Create CSCE374 Robotics Fall 2013 Notes on the irobot Create This document contains some details on how to use irobot Create robots. 1 Important Documents These notes are intended to help you get started, but

More information

Make your own secret locking mechanism to keep unwanted guests out of your space!

Make your own secret locking mechanism to keep unwanted guests out of your space! KNOCK LOCK Make your own secret locking mechanism to keep unwanted guests out of your space! Discover : input with a piezo, writing your own functions Time : 1 hour Level : Builds on projects : 1,,3,4,5

More information

Arduino 101 AN INTRODUCTION TO ARDUINO BY WOMEN IN ENGINEERING FT T I NA A ND AW E S O ME ME NTO R S

Arduino 101 AN INTRODUCTION TO ARDUINO BY WOMEN IN ENGINEERING FT T I NA A ND AW E S O ME ME NTO R S Arduino 101 AN INTRODUCTION TO ARDUINO BY WOMEN IN ENGINEERING FT T I NA A ND AW E S O ME ME NTO R S Overview Motivation Circuit Design and Arduino Architecture Projects Blink the LED Switch Night Lamp

More information

Chapter 5: Process Synchronization. Operating System Concepts 9 th Edition

Chapter 5: Process Synchronization. Operating System Concepts 9 th Edition Chapter 5: Process Synchronization Silberschatz, Galvin and Gagne 2013 Chapter 5: Process Synchronization Background The Critical-Section Problem Peterson s Solution Synchronization Hardware Mutex Locks

More information

1 Making Decisions in Arduino Programs

1 Making Decisions in Arduino Programs ME 120: If-then-else structures in Arduino October 11, 2018 Gerald Recktenwald gerry@pdx.edu 1 Making Decisions in Arduino Programs It s incredibly useful that computer programs can respond to changing

More information

Imperativ Programming. morning (again) Jens Dalsgaard Nielsen Aalborg University (1/24)

Imperativ Programming. morning (again) Jens Dalsgaard Nielsen Aalborg University (1/24) Imperativ Programming morning (again) Jens Dalsgaard Nielsen (jdn@es.aau.dk) Aalborg University (1/24) message Changed timing today Jens Dalsgaard Nielsen (jdn@es.aau.dk) Aalborg University (2/24) Jens

More information

Project 17 Shift Register 8-Bit Binary Counter

Project 17 Shift Register 8-Bit Binary Counter Project 17 Shift Register 8-Bit Binary Counter In this project, you re going to use additional ICs (Integrated Circuits) in the form of shift registers in order to drive LEDs to count in binary (I will

More information

Gamma sensor module GDK101

Gamma sensor module GDK101 Application Note: Interfacing with Arduino over I 2 C The Arduino makes an ideal platform for prototyping and data collection with the Gamma sensors. Electrical Connections Interfacing with the sensor

More information

CHAPTER 11 INTERRUPTS PROGRAMMING

CHAPTER 11 INTERRUPTS PROGRAMMING CHAPTER 11 INTERRUPTS PROGRAMMING Interrupts vs. Polling An interrupt is an external or internal event that interrupts the microcontroller To inform it that a device needs its service A single microcontroller

More information

Skill Level: Beginner

Skill Level: Beginner ADXL345 Quickstart Guide by zaggrad January 10, 2011 Skill Level: Beginner Description: The ADXL345 is a small, thin, low power, 3-axis accelerometer with high resolution (13-bit) measurement at up to

More information

CmpSci 187: Programming with Data Structures Spring 2015

CmpSci 187: Programming with Data Structures Spring 2015 CmpSci 187: Programming with Data Structures Spring 2015 Lecture #9 John Ridgway February 26, 2015 1 Recursive Definitions, Algorithms, and Programs Recursion in General In mathematics and computer science

More information

Programming Language. Functions. Eng. Anis Nazer First Semester

Programming Language. Functions. Eng. Anis Nazer First Semester Programming Language Functions Eng. Anis Nazer First Semester 2016-2017 Definitions Function : a set of statements that are written once, and can be executed upon request Functions are separate entities

More information

The 8255A: Programmable Peripheral Interface

The 8255A: Programmable Peripheral Interface CMP:885 Peripherals Summary- EE39: Computer Organization, rchitecture and MicroProcessors http://www.ee.iitb.ac.in/ sumantra/courses/up/up.html The 855: Programmable Peripheral Interface PROGRMMER S VIEW

More information

Timer0..Timer3. Interrupt Description Input Conditions Enable Flag

Timer0..Timer3. Interrupt Description Input Conditions Enable Flag Timer0..Timer3 Timers are pretty useful: likewise, Microchip provides four different timers for you to use. Like all interrupts, you have to Enable the interrupt, Set the conditions of the interrupt, and

More information

Connecting Arduino to Processing a

Connecting Arduino to Processing a Connecting Arduino to Processing a learn.sparkfun.com tutorial Available online at: http://sfe.io/t69 Contents Introduction From Arduino......to Processing From Processing......to Arduino Shaking Hands

More information

NI-DAQmx Basic Course NITS John Shannon

NI-DAQmx Basic Course NITS John Shannon NI-DAQmx Basic Course NITS 2005 John Shannon Agenda Intro to DAQMX Difference between traditional / DaqMX MAX and DAQ Assistance Analog Input / Output Property Nodes Buffered / Continuous Acquisition Analog

More information

The Simon State Machine Part 1

The Simon State Machine Part 1 The Simon State Machine Part 1 Lab Summary This lab is the first part to a two-part lab where you will be combining all the components you created throughout the semester into one functioning state machine.

More information

Lab 3 XBees and LCDs and Accelerometers, Oh My! Part 1: Wireless Communication Using XBee Modules and the Arduino

Lab 3 XBees and LCDs and Accelerometers, Oh My! Part 1: Wireless Communication Using XBee Modules and the Arduino University of Pennsylvania Department of Electrical and Systems Engineering ESE 205 Electrical Circuits and Systems Laboratory I Lab 3 XBees and LCDs and Accelerometers, Oh My! Introduction: In the first

More information

Advanced Activities - Information and Ideas

Advanced Activities - Information and Ideas Advanced Activities - Information and Ideas Congratulations! You successfully created and controlled the robotic chameleon using the program developed for the chameleon project. Here you'll learn how you

More information

Laboratory 4 Usage of timers

Laboratory 4 Usage of timers Laboratory 4 Usage of timers 1. Timer based interrupts Beside external interrupt, the MCU responds to internal ones which are triggered by external events (on the external pins). The source of the internal

More information

Arduino Programming Part 4: Flow Control

Arduino Programming Part 4: Flow Control Arduino Programming Part 4: Flow Control EAS 199B, Winter 2010 Gerald Recktenwald Portland State University gerry@me.pdx.edu Goal Make choices based on conditions in the environment Logical expressions:

More information

University of Hull Department of Computer Science C4DI Interfacing with Arduinos

University of Hull Department of Computer Science C4DI Interfacing with Arduinos Introduction Welcome to our Arduino hardware sessions. University of Hull Department of Computer Science C4DI Interfacing with Arduinos Vsn. 1.0 Rob Miles 2014 Please follow the instructions carefully.

More information

This tutorial will show you how to take temperature readings using the Freetronics temperature sensor and an Arduino Uno.

This tutorial will show you how to take temperature readings using the Freetronics temperature sensor and an Arduino Uno. This tutorial will show you how to take temperature readings using the Freetronics temperature sensor and an Arduino Uno. Note that there are two different module types: the temperature sensor module and

More information

Løkkestrukturer. Trykknap: Button, Se eksempler / Digital / Button. Decision: If: Version 01/ Loops, løkker mm. i Arduino.

Løkkestrukturer. Trykknap: Button, Se eksempler / Digital / Button. Decision: If: Version 01/ Loops, løkker mm. i Arduino. Loops, løkker mm. i Arduino Links til: Trykknap If, If Else If For-Loop While, Do While PWM Serial Read Funktioner Array, Matrix Trykknap: Button, Se eksempler / Digital / Button int buttonpin=2 pinmode(buttonpin,

More information

Computer Science CS221 Test 2 Name. 1. Give a definition of the following terms, and include a brief example. a) Big Oh

Computer Science CS221 Test 2 Name. 1. Give a definition of the following terms, and include a brief example. a) Big Oh Computer Science CS221 Test 2 Name 1. Give a definition of the following terms, and include a brief example. a) Big Oh b) abstract class c) overriding d) implementing an interface 10/21/1999 Page 1 of

More information

Rochester Institute of Technology CMPE 663/EEEE 663 Graduate Student Project

Rochester Institute of Technology CMPE 663/EEEE 663 Graduate Student Project Rochester Institute of Technology CMPE 663/EEEE 663 Graduate Student Project Graduate Student Project: Extend the USART Demo project to include blocking and non-blocking (interrupt driven) versions of

More information