0% found this document useful (0 votes)
54 views

Arduino Programming Part7 Slides

This document introduces flow charts and top-down design for developing algorithms. It discusses flow chart symbols and provides exercises to practice drawing flow charts that break down the steps to read and display salinity values. Top-down design is presented as a technique to recursively refine problem-solving steps from general to specific.

Uploaded by

puteri.s1530
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
54 views

Arduino Programming Part7 Slides

This document introduces flow charts and top-down design for developing algorithms. It discusses flow chart symbols and provides exercises to practice drawing flow charts that break down the steps to read and display salinity values. Top-down design is presented as a technique to recursively refine problem-solving steps from general to specific.

Uploaded by

puteri.s1530
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

Arduino Programming

Part 7: Flow charts and


Top-down design
EAS 199B, Winter 2010

Gerald Recktenwald
Portland State University
gerry@me.pdx.edu
Goals

Introduce flow charts


❖ A tool for developing algorithms
❖ A tool for documenting algorithms
❖ A visual method of communicating about any sequential or
iterative process
❖ Great for visual learners!

Top-down design
❖ One technique for creating a plan for large, multi-step problems
❖ Not tied to flow charts, but can be used effectively with flow
charts

Arduino Programming Part 7: EAS 199B 2


Flow chart symbols
Terminator Start or stop a sequence.
May contain module name.

Process A step in the process or


computational algorithm

Data input Information from outside of


the algorithm or process

Decision Choose a flow path for continuing


the algorithm or process

Flow indicators Connect other elements

Connector or Junction Optional joint where flow


indicators merge

Arduino Programming Part 7: EAS 199B 3


Exercise 1

Draw the flow chart to read and display the salinity


value on the LCD monitor
Keep it simple
❖ 5 or so symbols (not counting arrows)
❖ Describe only the high level actions

Arduino Programming Part 7: EAS 199B 4


Exercise 1

Your answer goes here.

Arduino Programming Part 7: EAS 199B 5


Exercise 1

Read and display salinity

Specify constants

Initialize LCD

Read salinity

Display value to LCD

Arduino Programming Part 7: EAS 199B 6


Exercise 2

Expand the “Read salinity” step in another flow chart


❖ Keep it simple
❖ “analog data” is an external input
Read and display salinity
analog
input
Specify constants

Initialize LCD

Read salinity

Display value to LCD

Arduino Programming Part 7: EAS 199B 7


Exercise 2

Your answer goes here.

Arduino Programming Part 7: EAS 199B 8


Exercise 2

Read salinity

output pin,
input pin

Turn on power

Wait

analog
Read analog input
value

Turn off power

Stop
Arduino Programming Part 7: EAS 199B 9
Exercise 3

Expand the “Read analog input” step in another flow chart


❖ Compute the average of n readings
❖ “analog data” is an external input Read salinity

output pin,
input pin

Turn on power

Wait

analog
Read analog input
value

Turn off power

Stop

Arduino Programming Part 7: EAS 199B 10


Exercise 3

Your answer goes here.

Arduino Programming Part 7: EAS 199B 11


Exercise 3
Read average analog input

n readings,
input pin

Initialize: sum=0, counter=0

analog
Read analog input
value

Add to sum, increment counter

yes
Counter<n?

no

Average = sum/n

Stop
Arduino Programming Part 7: EAS 199B 12
Top-down design

1. Start with a general statement of the solution


a. List the main steps
b. Don’t worry yet about details
2. Pick one of the steps
a. Break this step into a manageable number of sub-steps
b. Don’t worry about too many of the details
c. Apply step 2 to one of steps just generated

Arduino Programming Part 7: EAS 199B 13


Top-down design

Recursive refinement: from general to specific


Read and display salinity
Read salinity

Specify constants output pin, Read average analog input


input pin
n readings,
Initialize LCD Turn on power input pin

Initialize: sum=0, counter=0


Read salinity Wait

analog
Display value to LCD Read analog input
value
analog
Read analog input
value
Turn off power

Add to sum, increment counter


Stop

yes
Counter<n?

Repeat refinement until individual no

steps can be translated in to


Average = sum/n

concrete actions or lines of code Stop

Arduino Programming Part 7: EAS 199B 14

You might also like