element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Design for a Cause - Design Challenge
  • Challenges & Projects
  • Design Challenges
  • Design for a Cause - Design Challenge
  • More
  • Cancel
Design for a Cause - Design Challenge
Blog Seeing EyeDuino - Coding complete - Blog #8
  • Blog
  • Forum
  • Documents
  • Polls
  • Files
  • Events
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: dwinhold
  • Date Created: 26 Aug 2018 9:26 PM Date Created
  • Views 747 views
  • Likes 4 likes
  • Comments 2 comments
  • mkr_1000
  • braille
  • dwinhold
  • design for a cause - design challenge
  • seeing eyeduino
Related
Recommended

Seeing EyeDuino - Coding complete - Blog #8

dwinhold
dwinhold
26 Aug 2018

For Blog #8 I am posting the code I created for the Seeing EyeDuino. This has been the longest, most involved part of my project.

 

First, here is a layout of how the Arduino pins are assigned:

 

Arduino pin configuration

 

0 - 13 digital 14 - 19 analog (A0 - A5)

0

1      Braille Pin1  *

2      Braille Pin2  *

3      Braille Pin3  *

4      Servo break left - myservo2  *

5      Servo break right - myservo3  *
 
6      trigPinB  *

7      echoPinB  *

8      Front Servo - myservo  *

9      trigPinA  *

10    echoPinA  *

11    Braille Pin4  *

12    Braille Pin5  *

13    Braille Pin6  *

14

15    Down warning LED red

16    Right warning yellow  *

17    Right warning red  *

18    Left warning yellow  *

19    Left warning red  *

 

Integers

 

**Record distance from ultrasonic sensors
**Front
distanceL
distanceF
distanceR

 

**Down
distanceD

 

**Time taken for ping to return
durationA
durationB

 

 

**Servo home position front, break right and break left
pos **Front
pos2  **Right
pos3  **Left

 

**Constant time delay
timeA
timeB
timeC

 

 

Here is the code:

 

#include <Servo.h>
Servo myservo; //Front
Servo myservo2;  //Left
Servo myservo3;  //Right
//Assign actuator delay times
int timeA = 200;
int timeB = 300;
int timeC = 500;
//Ultrasonic Sensor A  (Front)
const int trigPinA = 9; 
const int echoPinA = 10; 
long durationA; 
int distanceL;
int distanceF;
int distanceR;
int pos = 0;  //myservo
int pos2 = 0;  //myservo3 right
int pos3 = 0;  //myservo2 left
//Ultrasonic Sensor B  (Back)
const int trigPinB = 6;
const int echoPinB = 7;
 
long durationB; 
int distanceD;
void setup() {
 
  //Ultrasonic Sensor Forward
  pinMode(trigPinA, OUTPUT); 
  pinMode(echoPinA, INPUT); 
  Serial.begin(9600); 
  
  //Ultrasonic Sensor Down
  pinMode(trigPinB, OUTPUT); 
  pinMode(echoPinB, INPUT); 
  Serial.begin(9600); 
  myservo.attach(8); //Front servo
  myservo2.attach(4); //Break left
  
  myservo3.attach (5);  //Break right
  //Braille 
  pinMode(1, OUTPUT);
  pinMode(2, OUTPUT);  
  pinMode(3, OUTPUT);  
  pinMode(11, OUTPUT);  
  pinMode(12, OUTPUT);  
  pinMode(13, OUTPUT);
  
  //Set Braille actuators to off
  digitalWrite(1, LOW);
  digitalWrite(2, LOW);
  digitalWrite(3, LOW);
  digitalWrite(11, LOW);
  digitalWrite(12, LOW);
  digitalWrite(13, LOW);
//Warning lights and sound
  pinMode(15, OUTPUT); //Down warning red
  pinMode(16, OUTPUT); //Right warning yellow
  pinMode(17, OUTPUT); //Right warning red
  pinMode(18, OUTPUT); //Left warning yellow
  pinMode(19, OUTPUT); //Left warning red
      
}
void loop() {
  
    //Send servo to start position and turn to face forward
  
  for (pos = 30; pos <= 90; pos += 1) { 
    // in steps of 1 degree
    myservo.write(pos);              
    delay(15);                     
  }
    //Turn to far right 
  
  for (pos = 90; pos <= 150; pos += 1) { 
    // in steps of 1 degree
    myservo.write(pos);             
    delay(15);                      
  }
  
  //Ping and record distance right
  digitalWrite(trigPinA, LOW); 
  delayMicroseconds(2); 
 
  digitalWrite(trigPinA, HIGH); 
  delayMicroseconds(10); 
  digitalWrite(trigPinA, LOW); 
 
  durationA = pulseIn(echoPinA, HIGH); 
  distanceR= durationA*0.034/2; //Distance in mm
  
  //Return to forward position
    
  for (pos = 150; pos >= 90; pos -= 1) { 
    myservo.write(pos);              
    delay(15);                       
  }
  //Ping and record distance forward
  digitalWrite(trigPinA, LOW); 
  delayMicroseconds(2); 
 
  digitalWrite(trigPinA, HIGH); 
  delayMicroseconds(10); 
  digitalWrite(trigPinA, LOW); 
 
  durationA = pulseIn(echoPinA, HIGH); 
  distanceF= durationA*0.034/2; //Distance in mm
  //Move to far left position
  
  for (pos = 90; pos >= 30; pos -= 1) { 
    // in steps of 1 degree
    myservo.write(pos);             
    delay(15);                       
  }
  
  //Ping and record distance left
  digitalWrite(trigPinA, LOW); 
  delayMicroseconds(2); 
  digitalWrite(trigPinA, HIGH); 
  delayMicroseconds(10); 
  digitalWrite(trigPinA, LOW); 
 
  durationA = pulseIn(echoPinA, HIGH); 
  distanceL= durationA*0.034/2; //Distance in mm
  
  
    //Ping and record distance Down
    digitalWrite(trigPinB, LOW); 
    delayMicroseconds(2); 
 
    digitalWrite(trigPinB, HIGH); 
    delayMicroseconds(10); 
    digitalWrite(trigPinB, LOW); 
 
    durationB = pulseIn(echoPinB, HIGH); 
    distanceD= durationB*0.034/2; //Distance in mm
    
    
//With ping distance information decide how to proceed
if (distanceL <= 600 && distanceL > 400)
  {
  
  digitalWrite (18, HIGH);
  
  //O
  {
    letterO();
  }
  
  delay(timeB);
  
  digitalWrite (18, LOW);
  
    //B 
  {
    letterB();
  }
  
  delay(timeB);
  
  digitalWrite (18, HIGH);
  
    //J 
  {
    letterJ();
  }
  
  delay(timeB);
  
  digitalWrite (18, LOW);
  
    //E & 5
  {
    letterE();
  }
  
  delay(timeB);
  
  digitalWrite (18, HIGH);
  
    //C & 3
  {
    letterC();
  }
  
  delay(timeB);
  
  digitalWrite (18, LOW);
  
    //T
  {
    letterT();
  }
  
  
  digitalWrite (18, HIGH);
  
  //Break left turn left
    for (pos3 = 30; pos3 <= 90; pos3 += 1) { 
    // in steps of 1 degree
    myservo2.write(pos);              
    delay(15);                     
    }
    delay(timeC);
    for (pos3 = 90; pos3 >= 30; pos3 -= 1) { 
    // in steps of 1 degree
    myservo2.write(pos);             
    delay(15);                       
    }
  
    //L
  {
    letterL();
  }
  
  delay(timeB);
  
  digitalWrite (18, LOW);
  
    //E & 5
  {
    letterE();
  }
  
  delay(timeB);
  
  digitalWrite (18, HIGH);
  
    //F & 6
  {
    letterF();
  }
  
  delay(timeB);
  
  digitalWrite (18, LOW);
  
    //T
  {
    letterT();
  }
  
      
  }
    
  if (distanceL <= 400)
  {
  
  digitalWrite(18, HIGH);
  digitalWrite(19, HIGH);
  
  //M
  {
    letterM();
  }
  
  delay(timeB);
  
  digitalWrite(19, LOW);
  
    //O
  {
    letterO();
  }
  
  delay(timeB);
  
  digitalWrite(19, HIGH);
  
    //V
    {
    letterV();
  }
  
  delay(timeB);
  
  digitalWrite(19, LOW);
  
  //E & 5
  {
    letterE();
  }
  
  
  digitalWrite(19, HIGH);
  
  
  //Break left turn left
    for (pos3 = 30; pos3 <= 90; pos3 += 1) { 
    // in steps of 1 degree
    myservo2.write(pos);              
    delay(15);                     
    }
    delay(timeC);
    for (pos3 = 90; pos3 >= 30; pos3 -= 1) { 
    // in steps of 1 degree
    myservo2.write(pos);             
    delay(15);                       
    }
  
  //L
  {
    letterL();
  }
  
  delay(timeB);
  
  digitalWrite (19, LOW);
  
  //E & 5
  {
    letterE();
  }
  
  delay(timeB);
  
  digitalWrite (19, HIGH);
  
  //F & 6
  {
    letterF();
  }
  
  delay(timeB);
  
  digitalWrite(18, LOW);
  digitalWrite (19, LOW);
  
  //T
  {
    letterT();
  }
  
  
        
 }
    
  if (distanceR <= 600 && distanceR >400)
    {
    digitalWrite (16, HIGH);
  
  //O
  {
    letterO();
  }
  
  delay(timeB);
  
  digitalWrite (16, LOW);
  
    //B & 2
  {
    letterB(); 
  }
  
  delay(timeB);
  
  digitalWrite (16, HIGH);
  
    //J & 0 (zero)
  {
    letterJ();
  }
  
  delay(timeB);
  
  digitalWrite (16, LOW);
  
    //E & 5
  {
    letterE();
  }
  
  delay(timeB);
  
  digitalWrite (16, HIGH);
  
    //C & 3
  {
    letterC(); 
  }
  
  delay(timeB);
  
  digitalWrite (16, LOW);
  
    //T
  {
    letterT();
  }
  
  //Break right turn right
    for (pos2 = 30; pos2 <= 90; pos2 += 1) { 
    // in steps of 1 degree
    myservo3.write(pos);              
    delay(15);                     
    }
    delay(timeC);
    for (pos2 = 90; pos2 >= 30; pos2 -= 1) { 
    // in steps of 1 degree
    myservo3.write(pos);             
    delay(15);                       
    }
  
  digitalWrite (16, HIGH);
  
    //R
  {
    letterR();
  }
  
  delay(timeB);
  
  digitalWrite (16, LOW);
  
    //I & 9
  {
    letterI(); 
  }
  
  delay(timeB);
  
  digitalWrite (16, HIGH);
   
   
    //G & 7
  {
    letterG();
  }
  
  delay(timeB);
  
  digitalWrite (16, LOW);
  
  //H & 8
  {
    letterH();
  }
  
  delay(timeB);
  
  digitalWrite (16, HIGH);
  
    //T
  {
    letterT();
  }
  
  digitalWrite (16, LOW);
    
  }
  
  if (distanceR <= 400)
  {
  
  digitalWrite(16, HIGH);
  digitalWrite(17, HIGH);
  
  //M
  {
    letterM();
  }
  
  delay(timeB);
  
  digitalWrite(17, LOW);
  
  //O
  {
    letterO();
  }
  
  delay(timeB);
  
  digitalWrite(17, HIGH);
  
  //V
  {
    letterV();
  }
  
  delay(timeB);
  
  digitalWrite(17, LOW);
  
    //E & 5
  {
    letterE();
  }
  
  //Break right turn right
    for (pos2 = 30; pos2 <= 90; pos2 += 1) { 
    // in steps of 1 degree
    myservo3.write(pos);              
    delay(15);                     
    }
    delay(timeC);
    for (pos2 = 90; pos2 >= 30; pos2 -= 1) { 
    // in steps of 1 degree
    myservo3.write(pos);             
    delay(15);                       
    }
  
  digitalWrite(17, HIGH);
  
    //R
  {
    letterR();
  }
  
  delay(timeB);
  
  digitalWrite (17, LOW);
  
    //I & 9
  {
    letterI(); 
  }
  
  delay(timeB);
  
  digitalWrite (17, HIGH);
   
   
    //G & 7
  {
    letterG();
  }
  
  delay(timeB);
  
  digitalWrite (17, LOW);
  
  //H & 8
  {
    letterH();
  }
  
  delay(timeB);
  
  digitalWrite (17, HIGH);
  
  //T
  {
    letterT();
  }
  
  digitalWrite (16, LOW);
  digitalWrite (17, LOW);
  
  
 }
    
  if (distanceF <= 800 && distanceF > 550)
  {
  
  digitalWrite(16, HIGH);
  digitalWrite(18, HIGH);
  
  //S
  {
    letterS();
  }
  
  delay(timeB);
  
  //L
  {
    letterL();
  }
  
  delay(timeB);
  
  //O
  {
  letterO();
  }
  
  delay(timeB);
    
  //W
  {
    letterW();
  }
  
  digitalWrite(16, LOW);
  digitalWrite(18, LOW);
  
  
  }
  if (distanceF <= 550 && distanceF > 300)
  {
  
  digitalWrite(17, HIGH);
  digitalWrite(19, HIGH);
  
  //S
  {
    letterS();
  }
  
  delay(timeB);
  
  digitalWrite(17, LOW);
  digitalWrite(19, LOW);
  
  //L
  {
    letterL();
  }
  
  delay(timeB);
  
  digitalWrite(17, HIGH);
  digitalWrite(19, HIGH);
  
  //O
  {
    letterO();
  }
  
  delay(timeB);
  
  digitalWrite(17, LOW);
  digitalWrite(19, LOW);
    
  //W
  {
    letterV();
  }
  
  //Break left to stop
    for (pos3 = 30; pos3 <= 90; pos3 += 1) { 
    // in steps of 1 degree
    myservo2.write(pos);              
    delay(15);                     
    }
//Break right to stop
    for (pos2 = 30; pos2 <= 90; pos2 += 1) { 
    // in steps of 1 degree
    myservo3.write(pos);              
    delay(15);                     
    }
    delay(timeC);
    for (pos3 = 90; pos3 >= 30; pos3 -= 1) { 
    // in steps of 1 degree
    myservo2.write(pos);             
    delay(15);                       
    }
    for (pos2 = 90; pos2 >= 30; pos2 -= 1) { 
    // in steps of 1 degree
    myservo3.write(pos);             
    delay(15);                       
    }
   
  }
  if (distanceF < 300)
  {
  
  digitalWrite(16, HIGH);
  digitalWrite(17, HIGH);
  digitalWrite(18, HIGH);
  digitalWrite(19, HIGH);
  
  
  //S
  {
    letterS();
  }
  
  delay(timeB);
  
  digitalWrite(16, LOW);
  digitalWrite(17, LOW);
  digitalWrite(18, LOW);
  digitalWrite(19, LOW);
  
  //T
  {
    letterT();
  }
  
  delay(timeB);
  
  digitalWrite(16, HIGH);
  digitalWrite(17, HIGH);
  digitalWrite(18, HIGH);
  digitalWrite(19, HIGH);
  
  //O
  {
    letterO();
  }
  
  delay(timeB);
  
  digitalWrite(16, LOW);
  digitalWrite(17, LOW);
  digitalWrite(18, LOW);
  digitalWrite(19, LOW);
  
  //P
  {
    letterP();
  }
  
  //Break left to stop
    for (pos3 = 30; pos3 <= 90; pos3 += 1) { 
    // in steps of 1 degree
    myservo2.write(pos);              
    delay(15);                     
    }
  //Break right to stop
    for (pos2 = 30; pos2 <= 90; pos2 += 1) { 
    // in steps of 1 degree
    myservo3.write(pos);              
    delay(15);                     
    }
    delay(1000);
    for (pos3 = 90; pos3 >= 30; pos3 -= 1) { 
    // in steps of 1 degree
    myservo2.write(pos);             
    delay(15);                       
    }
    for (pos2 = 90; pos2 >= 30; pos2 -= 1) { 
    // in steps of 1 degree
    myservo3.write(pos);             
    delay(15);                       
    }
  
  }
  
  
  if (distanceD <= 300 && distanceD >= 150)  {
    digitalWrite (15, HIGH);
    //Break left to stop
    for (pos3 = 30; pos3 <= 90; pos3 += 1) { 
    // in steps of 1 degree
    myservo2.write(pos);              
    delay(15);                     
        }
    //Break right to stop
    for (pos2 = 30; pos2 <= 90; pos2 += 1) { 
    // in steps of 1 degree
    myservo3.write(pos);              
    delay(15);                     
    }
    //S
    {
      letterS();
    }
    
        delay(timeB);
    //T
    {
      letterT();
    }
    
        delay(timeB);
    //O
    {
      letterO();
    }
    
        delay(timeB);
  
    //P
    {
      letterP();
    }
    delay(timeC);
    //S
    {
      letterS();
    }
    
        delay(timeB);
    //T
    {
      letterT();
    }
    
        delay(timeB);
    //E
    {
      letterE();
    }
    
        delay(timeB);
    //P
    {
      letterP();
    }
        delay(timeB);
    //D
    {
      letterD();
    }
    
        delay(timeB);
    //O
    {
      letterO();
    }
    
        delay(timeB);
    //W
    {
      letterW();
    }
    
        delay(timeB);
    //N
    {
      letterN();
    }
    
    
  for (pos3 = 90; pos3 >= 30; pos3 -= 1) { 
  // in steps of 1 degree
  myservo2.write(pos);             
  delay(15);                       
  }
for (pos2 = 90; pos2 >= 30; pos2 -= 1) { 
  // in steps of 1 degree
  myservo3.write(pos);             
  delay(15);                       
  }
  digitalWrite (15, LOW);
}
if (distanceD >= 300) {
  digitalWrite (15, HIGH);
//Break left to stop
  for (pos3 = 30; pos3 <= 90; pos3 += 1) { 
  // in steps of 1 degree
  myservo2.write(pos);              
  delay(15);                     
        }
//Break right to stop
  for (pos2 = 30; pos2 <= 90; pos2 += 1) { 
  // in steps of 1 degree
  myservo3.write(pos);              
  delay(15);                     
  }
    //S
    {
      letterS();
    }
      
      delay(timeB);
    //T
    {
      letterT();
    }
      delay(timeB);
    //O
    {
      letterO();
    }
      delay(timeB);
 
    //P
    {
      letterP();
    }
      delay(timeC);
    //D
    {
      letterD();
    }
      delay(timeB);
  
    //R
    {
      letterR();
    }
      delay(timeB);
    //O
    {
      letterO();
    }
      delay(timeB);
    //P
    {
      letterP();
    }
  
      delay(timeB);

    //O
    {
      letterO();
    }
      delay(timeB);
    //F
    {
      letterF();
    }
      delay(timeB);
    //F
    {
      letterF();
    }
    for (pos3 = 90; pos3 >= 30; pos3 -= 1) { 
    // in steps of 1 degree
    myservo2.write(pos);             
    delay(15);                       
    }
    for (pos2 = 90; pos2 >= 30; pos2 -= 1) { 
    // in steps of 1 degree
    myservo3.write(pos);             
    delay(15);                       
    }
    digitalWrite (15, LOW);
  }  
    
}
void letterA()
  {
  digitalWrite (1, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite(1, LOW);
  }

void letterB()
  {
  digitalWrite (1, HIGH); 
  digitalWrite (3, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (1, LOW);
  digitalWrite (3, LOW); 
  }

void letterC()
  {
  digitalWrite (1, HIGH); 
  digitalWrite (2, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (1, LOW);
  digitalWrite (2, LOW); 
  }

void letterD()
  {
  digitalWrite (1, HIGH); 
  digitalWrite (2, HIGH); 
  digitalWrite (11, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (1, LOW);
  digitalWrite (2, LOW); 
  digitalWrite (11, LOW);
  }

void letterE()
  {
  digitalWrite (1, HIGH); 
  digitalWrite (11, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (1, LOW);
  digitalWrite (11, LOW);
  }

void letterF()
  {
  digitalWrite (1, HIGH); 
  digitalWrite (2, HIGH); 
  digitalWrite (3, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (1, LOW);
  digitalWrite (2, LOW); 
  digitalWrite (3, LOW);
  }

void letterG()
  {
  digitalWrite (1, HIGH); 
  digitalWrite (2, HIGH); 
  digitalWrite (3, HIGH);
  digitalWrite (11, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (1, LOW);
  digitalWrite (2, LOW); 
  digitalWrite (3, LOW);
  digitalWrite (11, LOW);
  }

void letterH()
  {
  digitalWrite (1, HIGH);  
  digitalWrite (3, HIGH);
  digitalWrite (11, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (1, LOW); 
  digitalWrite (3, LOW);
  digitalWrite (11, LOW);
  }

void letterI()
  {
  digitalWrite (2, HIGH); 
  digitalWrite (3, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (2, LOW);
  digitalWrite (3, LOW); 
  }

void letterJ()
  {
  digitalWrite (2, HIGH); 
  digitalWrite (3, HIGH);
  digitalWrite (11, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (2, LOW); 
  digitalWrite (3, LOW);
  digitalWrite (11, LOW);
  }

void letterK()
  {
  digitalWrite (1, HIGH); 
  digitalWrite (12, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (1, LOW);
  digitalWrite (12, LOW);
  }

void letterL()
  {
  digitalWrite (1, HIGH);  
  digitalWrite (3, HIGH);
  digitalWrite (12, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (1, LOW); 
  digitalWrite (3, LOW);
  digitalWrite (12, LOW);
  }

void letterM()
  {
  digitalWrite (1, HIGH);  
  digitalWrite (2, HIGH);
  digitalWrite (12, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (1, LOW); 
  digitalWrite (2, LOW);
  digitalWrite (12, LOW);
  }

void letterN()
  {
  digitalWrite (1, HIGH); 
  digitalWrite (2, HIGH); 
  digitalWrite (11, HIGH);
  digitalWrite (12, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (1, LOW);
  digitalWrite (2, LOW); 
  digitalWrite (11, LOW);
  digitalWrite (12, LOW);
  }

void letterO()
  {
  digitalWrite (1, HIGH);  
  digitalWrite (11, HIGH);
  digitalWrite (12, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (1, LOW); 
  digitalWrite (11, LOW);
  digitalWrite (12, LOW);
  }

void letterP()
  {
  digitalWrite (1, HIGH); 
  digitalWrite (2, HIGH); 
  digitalWrite (3, HIGH);
  digitalWrite (12, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (1, LOW);
  digitalWrite (2, LOW); 
  digitalWrite (3, LOW);
  digitalWrite (12, LOW);
  }

void letterQ()
  {
  digitalWrite (1, HIGH); 
  digitalWrite (2, HIGH); 
  digitalWrite (3, HIGH);
  digitalWrite (11, HIGH);
  digitalWrite (12, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (1, LOW);
  digitalWrite (2, LOW);
  digitalWrite (3, LOW);  
  digitalWrite (11, LOW);
  digitalWrite (12, LOW);
  }

void letterR()
  {
  digitalWrite (1, HIGH); 
  digitalWrite (3, HIGH); 
  digitalWrite (11, HIGH);
  digitalWrite (12, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (1, LOW);
  digitalWrite (3, LOW); 
  digitalWrite (11, LOW);
  digitalWrite (12, LOW);
  }

void letterS()
  {
  digitalWrite (2, HIGH);  
  digitalWrite (3, HIGH);
  digitalWrite (12, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (2, LOW); 
  digitalWrite (3, LOW);
  digitalWrite (12, LOW);
  }

void letterT()
  {
  digitalWrite (2, HIGH); 
  digitalWrite (3, HIGH); 
  digitalWrite (11, HIGH);
  digitalWrite (12, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (2, LOW);
  digitalWrite (3, LOW); 
  digitalWrite (11, LOW);
  digitalWrite (12, LOW);
  }

void letterU()
  {
  digitalWrite (1, HIGH); 
  digitalWrite (12, HIGH); 
  digitalWrite (13, HIGH);
  delay(timeA); //delay between on and off
  digitalWrite (1, LOW);
  digitalWrite (12, LOW);
  digitalWrite (13, LOW);
  }

void letterV()
  {
  digitalWrite (1, HIGH); 
  digitalWrite (3, HIGH); 
  digitalWrite (12, HIGH);
  digitalWrite (13, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (1, LOW);
  digitalWrite (3, LOW); 
  digitalWrite (12, LOW);
  digitalWrite (13, LOW);
  }

void letterW()
  {
  digitalWrite (2, HIGH); 
  digitalWrite (3, HIGH); 
  digitalWrite (11, HIGH);
  digitalWrite (13, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (2, LOW);
  digitalWrite (3, LOW); 
  digitalWrite (11, LOW);
  digitalWrite (13, LOW);
  }

void letterX()
  {
  digitalWrite (1, HIGH); 
  digitalWrite (2, HIGH); 
  digitalWrite (12, HIGH);
  digitalWrite (13, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (1, LOW);
  digitalWrite (2, LOW); 
  digitalWrite (12, LOW);
  digitalWrite (13, LOW);
  }

void letterY()
  {
  digitalWrite (1, HIGH); 
  digitalWrite (2, HIGH); 
  digitalWrite (11, HIGH);
  digitalWrite (12, HIGH);
  digitalWrite (13, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (1, LOW);
  digitalWrite (2, LOW);
  digitalWrite (11, LOW);  
  digitalWrite (12, LOW);
  digitalWrite (13, LOW);
  }

void letterZ()
  {
  digitalWrite (1, HIGH); 
  digitalWrite (11, HIGH); 
  digitalWrite (12, HIGH);
  digitalWrite (13, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (1, LOW);
  digitalWrite (11, LOW); 
  digitalWrite (12, LOW);
  digitalWrite (13, LOW);
  }


void period()
  {
  digitalWrite (3, HIGH); 
  digitalWrite (11, HIGH);
  digitalWrite (13, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (3, LOW); 
  digitalWrite (11, LOW);
  digitalWrite (13, LOW);
  }

void numbersign()
  {
  digitalWrite (2, HIGH); 
  digitalWrite (11, HIGH); 
  digitalWrite (12, HIGH);
  digitalWrite (13, HIGH); 
  delay(timeA); //delay between on and off
  digitalWrite (2, LOW);
  digitalWrite (11, LOW); 
  digitalWrite (12, LOW);
  digitalWrite (13, LOW);
  }

 

I have 90% of the Seeing EyeDuino complete. I have made some changes to the EyeDuino, but that will be fore the next blog.

 

Blog #9 - The completed Seeing Eyeduino

Blog #10 - Testing

 

Thank you

 

Dale Winhold

  • Sign in to reply

Top Comments

  • aspork42
    aspork42 over 6 years ago +1
    Nice update! Keep us posted on progress. Can't wait to see it all running - post videos!
  • dwinhold
    dwinhold over 6 years ago in reply to aspork42

    Hi James

     

    Thank you for the comment. Once it is all up and running I will be posting lots of pictures and video!!

     

    Dale

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • aspork42
    aspork42 over 6 years ago

    Nice update!

    Keep us posted on progress. Can't wait to see it all running - post videos! image

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube