WEEK 8: Electronic Output Devices


For this week, I knew I wanted to focus on how to handle manipulating different aspects of my chosen output devices: TFT display, and servo motor, while also briefly looking over how buzzers work.


So, I played a little bit with the buzzer by uploading songs (namely the Star Wars theme), which codes can be found on the class page for buzzers and LED strips for class 08 here.


  const int c = 261;
  const int d = 294;
  const int e = 329;
  const int f = 349;
  const int g = 391;
  const int gS = 415;
  const int a = 440;
  const int aS = 455;
  const int b = 466;
  const int cH = 523;
  const int cSH = 554;
  const int dH = 587;
  const int dSH = 622;
  const int eH = 659;
  const int fH = 698;
  const int fSH = 740;
  const int gH = 784;
  const int gSH = 830;
  const int aH = 880;
   
  const int buzzerPin = 8;
  const int ledPin1 = 12;
  const int ledPin2 = 13;
   
  int counter = 0;
   
  void setup()
  {
    //Setup pin modes
    pinMode(buzzerPin, OUTPUT);
    pinMode(ledPin1, OUTPUT);
    pinMode(ledPin2, OUTPUT);
  }
   
  void loop()
  {
   
    //Play first section
    firstSection();
   
    //Play second section
    secondSection();
   
    beep(f, 250);  
    beep(gS, 500);  
    beep(f, 350);  
    beep(a, 125);
    beep(cH, 500);
    beep(a, 375);  
    beep(cH, 125);
    beep(eH, 650);
   
    delay(500);
   
    //Repeat second section
    secondSection();
   

    beep(f, 250);  
    beep(gS, 500);  
    beep(f, 375);  
    beep(cH, 125);
    beep(a, 500);  
    beep(f, 375);  
    beep(cH, 125);
    beep(a, 650);  
   
    delay(650);
  }
   
  void beep(int note, int duration)
  {
    //Play tone on buzzerPin
    tone(buzzerPin, note, duration);
   
    //Play different LED depending on value of 'counter'
    if(counter % 2 == 0)
    {
      digitalWrite(ledPin1, HIGH);
      delay(duration);
      digitalWrite(ledPin1, LOW);
    }else
    {
      digitalWrite(ledPin2, HIGH);
      delay(duration);
      digitalWrite(ledPin2, LOW);
    }
   
    //Stop tone on buzzerPin
    noTone(buzzerPin);
   
    delay(50);
   
    //Increment counter
    counter++;
  }
   
  void firstSection()
  {
    beep(a, 500);
    beep(a, 500);    
    beep(a, 500);
    beep(f, 350);
    beep(cH, 150);  
    beep(a, 500);
    beep(f, 350);
    beep(cH, 150);
    beep(a, 650);
   
    delay(500);
   
    beep(eH, 500);
    beep(eH, 500);
    beep(eH, 500);  
    beep(fH, 350);
    beep(cH, 150);
    beep(gS, 500);
    beep(f, 350);
    beep(cH, 150);
    beep(a, 650);
   
    delay(500);
  }
   
  void secondSection()
  {
    beep(aH, 500);
    beep(a, 300);
    beep(a, 150);
    beep(aH, 500);
    beep(gSH, 325);
    beep(gH, 175);
    beep(fSH, 125);
    beep(fH, 125);    
    beep(fSH, 250);
   
    delay(325);
   
    beep(aS, 250);
    beep(dSH, 500);
    beep(dH, 325);  
    beep(cSH, 175);  
    beep(cH, 125);  
    beep(b, 125);  
    beep(cH, 250);  
   
    delay(350);
  }
  


Next I tried out the servo motor. First I looked over the servo workshop page and went through the coding examples to see if I can get the motor to work. These codes can be found here.

Photo of circuit board concept for my Final Project


Before moving on to making a more complex circuit that would be used as a concept for my final project. I studied on how to incorporate a TFT display The link is found here.