Thursday, September 20, 2018

Wave Programming | Temperature Sensor

1)
#include <stdio.h>
#include <math.h>
int main(void)
{
double period_1, period_2, height_1, height_2, wl_1, wl_2, wavemax, time, steps, sum, new_period;
wavemax = 0;
time = 0;
steps = 0;
//read the period and wave height for wave 1
printf("Set the value of the period and wave height for wave 1 \n");
scanf("%lf %lf",&period_1,&height_1);
//read the period and wave height for wave 2
printf("Set the value of the period and wave height for wave 2 \n");
scanf("%lf %lf",&period_2,&height_2);
//compute and print the wavelength for each wave
wl_1 = 5.13*period_1*period_1;
wl_2 = 5.13*period_2*period_2;
printf("The wavelength for Wave 1 and Wave 2 are %5.2lf and %5.2lf ft \n",wl_1,wl_2);
//set new period to the product of the wave periods
new_period = period_1*period_2;
//set time increment to new period/200
time += new_period/200;
while (steps <= 199)
{
sum = height_1 + height_2;
if (sum > wavemax)
{
wavemax = sum;
}
steps++;
}
printf("The maximum height is %5.2lf ft \n",wavemax);
//end program
return 0;
}

2)

3)

4)

5)

6)
const int POT=0; const int RLED=11; const int GLED=10; const int BLED=9; int val = 0; void setup() { Serial.begin(9600); pinMode (BLED, OUTPUT); pinMode (GLED, OUTPUT); pinMode (RLED, OUTPUT); } void loop() { val = analogRead(POT); Serial.println(val); delay(500); if (analogRead(POT) <= 145) { digitalWrite(RLED, LOW); digitalWrite(GLED, LOW); digitalWrite(BLED, HIGH); } else if (analogRead(POT) >= 158) { digitalWrite(RLED, HIGH); digitalWrite(GLED, LOW); digitalWrite(BLED, LOW); } else { digitalWrite(RLED, LOW); digitalWrite(GLED, HIGH); digitalWrite(BLED, LOW); } }

Tuesday, September 11, 2018

RGB Lights and Buttons

1)
const int BLED=9;
const int GLED=10;
const int RLED=11;
const int BUTTON=2;
const int BUTTON_2=3;
boolean lastButton = LOW;
boolean currentButton = LOW;
int ledMode = 0;
void setup()
{
  pinMode (BLED, OUTPUT);
  pinMode (GLED, OUTPUT);
  pinMode (RLED, OUTPUT);
  pinMode (BUTTON, INPUT);
  pinMode (BUTTON_2, INPUT);
}
boolean debounce(boolean last)
{
  boolean current = digitalRead(BUTTON);
  if (last != current)
  {
    delay(5);
    current = digitalRead(BUTTON);
  }
  return current;
}
void setMode (int mode)
{
  //RED
  if (mode == 1)
  {
    digitalWrite(RLED, HIGH);
    digitalWrite(GLED, LOW);
    digitalWrite(BLED, LOW);
    if (digitalRead(BUTTON_2) == HIGH)
    {
      digitalWrite(RLED, HIGH);
      digitalWrite(GLED, LOW);
      digitalWrite(BLED, LOW);
      delay(100);
      digitalWrite(RLED, LOW);
      digitalWrite(GLED, LOW);
      digitalWrite(BLED, LOW);
      delay(100);
    }
  }
  //GREEN
  else if (mode == 2)
  {
    digitalWrite(RLED, LOW);
    digitalWrite(GLED, HIGH);
    digitalWrite(BLED, LOW);
    if (digitalRead(BUTTON_2) == HIGH)
    {
      digitalWrite(RLED, LOW);
      digitalWrite(GLED, HIGH);
      digitalWrite(BLED, LOW);
      delay(100);
      digitalWrite(RLED, LOW);
      digitalWrite(GLED, LOW);
      digitalWrite(BLED, LOW);
      delay(100);
    }
  }
 
  //BLUE
  else if (mode == 3)
  {
    digitalWrite(RLED, LOW);
    digitalWrite(GLED, LOW);
    digitalWrite(BLED, HIGH);
    if (digitalRead(BUTTON_2) == HIGH)
    {
      digitalWrite(RLED, LOW);
      digitalWrite(GLED, LOW);
      digitalWrite(BLED, HIGH);
      delay(100);
      digitalWrite(RLED, LOW);
      digitalWrite(GLED, LOW);
      digitalWrite(BLED, LOW);
      delay(100);
    }
  }
  //PURPLE (RED+BLUE)
  else if (mode == 4)
  {
    analogWrite(RLED, 127);
    analogWrite(GLED, 0);
    analogWrite(BLED, 127);
    if (digitalRead(BUTTON_2) == HIGH)
    {
      analogWrite(RLED, 127);
      analogWrite(GLED, 0);
      analogWrite(BLED, 127);
      delay(100);
      digitalWrite(RLED, LOW);
      digitalWrite(GLED, LOW);
      digitalWrite(BLED, LOW);
      delay(100);
    }
  }
  //TEAL (GREEN+BLUE)
  else if (mode == 5)
  {
    analogWrite(RLED, 0);
    analogWrite(GLED, 127);
    analogWrite(BLED, 127);
    if (digitalRead(BUTTON_2) == HIGH)
    {
      analogWrite(RLED, 0);
      analogWrite(GLED, 127);
      analogWrite(BLED, 127);
      delay(100);
      digitalWrite(RLED, LOW);
      digitalWrite(GLED, LOW);
      digitalWrite(BLED, LOW);
      delay(100);
    }
  }
  //ORANGE (RED+YELLOW)
  else if (mode == 6)
  {
    analogWrite(RLED, 255);
    analogWrite(GLED, 50);
    analogWrite(BLED, 0);
    if (digitalRead(BUTTON_2) == HIGH)
    {
      analogWrite(RLED, 255);
      analogWrite(GLED, 50);
      analogWrite(BLED, 0);
      delay(100);
      digitalWrite(RLED, LOW);
      digitalWrite(GLED, LOW);
      digitalWrite(BLED, LOW);
      delay(100);
    }
  }
  //WHITE (ALL TOGETHER)
  else if (mode == 7)
  {
    analogWrite(RLED, 255);
    analogWrite(GLED, 255);
    analogWrite(BLED, 255);
    if (digitalRead(BUTTON_2) == HIGH)
    {
      analogWrite(RLED, 255);
      analogWrite(GLED, 255);
      analogWrite(BLED, 255);
      delay(100);
      digitalWrite(RLED, LOW);
      digitalWrite(GLED, LOW);
      digitalWrite(BLED, LOW);
      delay(100);
    }
  }
  //OFF (mode = 0)
  else
  {
    digitalWrite(RLED, LOW);
    digitalWrite(GLED, LOW);
    digitalWrite(BLED, LOW);
  }
}
void loop()
{
  currentButton = debounce(lastButton);
  if (lastButton == LOW && currentButton == HIGH)
  {
    ledMode++;
  }
  lastButton = currentButton;
  //if you've cycled through the differnt options,
  //reset the counter to 0
  if (ledMode == 8) ledMode = 0;
  setMode(ledMode);
}

2)
const int BLED=9;
const int GLED=10;
const int RLED=11;
const int BUTTON=2;
const int BUTTON_2=3;
boolean lastButton = LOW;
boolean currentButton = LOW;
int ledMode = 0;
void setup()
{
  pinMode (BLED, OUTPUT);
  pinMode (GLED, OUTPUT);
  pinMode (RLED, OUTPUT);
  pinMode (BUTTON, INPUT);
  pinMode (BUTTON_2, INPUT);
}
boolean debounce(boolean last)
{
  boolean current = digitalRead(BUTTON);
  if (last != current)
  {
    delay(5);
    current = digitalRead(BUTTON);
  }
  return current;
}
void setMode (int mode)
{
  switch (ledMode)
  {
    case 1:
    //RED
    digitalWrite(RLED, HIGH);
    digitalWrite(GLED, LOW);
    digitalWrite(BLED, LOW);
    break;
    case 2:
    //GREEN
    digitalWrite(RLED, LOW);
    digitalWrite(GLED, HIGH);
    digitalWrite(BLED, LOW);
    break;
    case 3:
    //BLUE
    digitalWrite(RLED, LOW);
    digitalWrite(GLED, LOW);
    digitalWrite(BLED, HIGH);
    case 4:
    //PURPLE (RED+BLUE)
    analogWrite(RLED, 127);
    analogWrite(GLED, 0);
    analogWrite(BLED, 127);
    break;
    case 5:
    //TEAL (GREEN+BLUE)
    analogWrite(RLED, 0);
    analogWrite(GLED, 127);
    analogWrite(BLED, 127);
    break;
    case 6:
    //ORANGE (RED+YELLOW)
    analogWrite(RLED, 255);
    analogWrite(GLED, 50);
    analogWrite(BLED, 0);
    break;
    case 7:
    //WHITE (ALL TOGETHER)
    analogWrite(RLED, 255);
    analogWrite(GLED, 255);
    analogWrite(BLED, 255);
    break;
    default:
    //OFF (mode = 0)
    digitalWrite(RLED, LOW);
    digitalWrite(GLED, LOW);
    digitalWrite(BLED, LOW);
    break;
  }
}
void loop()
{
  currentButton = debounce(lastButton);
  if (lastButton == LOW && currentButton == HIGH)
  {
    ledMode++;
  }
  lastButton = currentButton;
  //if you've cycled through the differnt options,
  //reset the counter to 0
  if (ledMode == 8) ledMode = 0;
  setMode(ledMode);
}

3)
const int BLED=9;
const int GLED=10;
const int RLED=11;
const int BUTTON=2;
const int BUTTON_2=3;
const int BUTTON_3=4;
void setup()
{
  pinMode (BLED, OUTPUT);
  pinMode (GLED, OUTPUT);
  pinMode (RLED, OUTPUT);
  pinMode (BUTTON, INPUT);
  pinMode (BUTTON_2, INPUT);
  pinMode (BUTTON_3, INPUT);
}
void loop()
{
  if (digitalRead(BUTTON_3) == HIGH)
  {
    digitalWrite(RLED, HIGH);
    digitalWrite(GLED, LOW);
    digitalWrite(BLED, LOW);
  }
  else
  {
    digitalWrite(RLED, LOW);
    digitalWrite(GLED, LOW);
    digitalWrite(BLED, LOW);
  }
  if (digitalRead(BUTTON) == HIGH)
  {
    digitalWrite(RLED, LOW);
    digitalWrite(GLED, HIGH);
    digitalWrite(BLED, LOW);
  }
  else
  {
    digitalWrite(RLED, LOW);
    digitalWrite(GLED, LOW);
    digitalWrite(BLED, LOW);
  }
  if (digitalRead(BUTTON_2) == HIGH)
  {
    digitalWrite(RLED, LOW);
    digitalWrite(GLED, LOW);
    digitalWrite(BLED, HIGH);
  }
  else
  {
    digitalWrite(RLED, LOW);
    digitalWrite(GLED, LOW);
    digitalWrite(BLED, LOW);
  }
}

Thursday, September 6, 2018

Water Salinity Programs |

1)
/*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––*/
/* This program uses linear interpolation to */
/* compute the freezing temperature of seawater. */
#include <stdio.h>
#include <math.h>
int main(void)
{
/* Declare variables. */
double a, f_a, b, f_b, c, f_c, f_b_c;
/* Get user input from the keyboard. */
printf("Use ppt for salinity values. \n");
printf("Use degrees F for temperatures. \n");
printf("Enter first salinity and freezing temperature: \n");
scanf("%lf %lf",&a,&f_a);
printf("Enter second salinity and freezing temperature: \n");
scanf("%lf %lf",&c,&f_c);
printf("Enter new salinity: \n");
scanf("%lf",&b);
// Use linear interpolation to compute new freezing temperature.
f_b = f_a + (b-a)/(c-a)*(f_c - f_a);
/* Convert to Celcius */
f_b_c = (5/9)*f_b-32;
/* Print new freezing temperature. */
printf("New freezing temperature in degrees C: %4.1f \n",f_b_c);
return 0; /* Exit program. */
}
/*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––*/

2)The original program would not have to be changed because the degrees would change
accordingly with the formula and the ppt does not have to be changed because it does
not have any temperature units.

3)
/*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––*/
/* This program uses linear interpolation to */
/* compute the freezing temperature of seawater. */
#include <stdio.h>
#include <math.h>
int main(void)
{
/* Declare variables. */
double a, f_a, b, f_b, c, f_c;
/* Get user input from the keyboard. */
printf("Use ppt for salinity values. \n");
printf("Use degrees F for temperatures. \n");
printf("Enter first salinity and freezing temperature: \n");
scanf("%lf %lf",&f_a,&a);
printf("Enter second salinity and freezing temperature: \n");
scanf("%lf %lf",&f_c,&c);
printf("Enter new temperature: \n");
scanf("%lf",&b);
// Use linear interpolation to compute new freezing temperature.
f_b = f_a + (b-a)/(c-a)*(f_c - f_a);
/* Print new freezing temperature. */
printf("New water salinity: %2.0f ppt \n",f_b);
return 0; /* Exit program. */
}
/*–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––*/

Tuesday, September 4, 2018

Programming Lights


void setup()

{

  pinMode(10,OUTPUT); //Initialize Pin

  pinMode(9,OUTPUT);

  pinMode(8,OUTPUT);

  pinMode(7,OUTPUT);

}



void loop()

{

  digitalWrite(10,HIGH);    //Set the LED On

  delay(50);                      //Wait for 1000ms

  digitalWrite(10,LOW);  //Set the LED Off

  delay(50);                   //Wait for 1 second

  digitalWrite(9,HIGH);

  delay(50);

  digitalWrite(9,LOW);

  delay(50);

  digitalWrite(8,HIGH);

  delay(50);

  digitalWrite(8,LOW);

  delay(50);

  digitalWrite(7,HIGH);

  delay(50);

  digitalWrite(7,LOW);

  delay(50);

  digitalWrite(8,HIGH);

  delay(50);

  digitalWrite(8,LOW);

  delay(50);

  digitalWrite(9,HIGH);

  delay(50);

  digitalWrite(9,LOW);

  delay(50);
}

4)
#include <stdio.h>
#include <math.h>
int main(void)
{
/* Declare variables. */
double cysteine, oxygen, carbon, nitrogen, sulfur, hydrogen, n_oxygen, n_carbon, n_nitrogen, n_sulfur, n_hydrogen;
/* Get input */
printf("Input the number of molecules for Cysteine. \n");
printf("Number of Oxygen molecules: \n");
scanf("%lf",&n_oxygen);
printf("Number of Carbon molecules: \n");
scanf("%lf",&n_carbon);
printf("Number of Nitrogen molecules: \n");
scanf("%lf",&n_nitrogen);
printf("Number of Sulfur molecules: \n");
scanf("%lf",&n_sulfur);
printf("Number of Hydrogen molecules: \n");
scanf("%lf",&n_hydrogen);
/* Set variables */
oxygen = 15.9994*n_oxygen;
carbon = 12.011*n_carbon;
nitrogen = 14.00674*n_nitrogen;
sulfur = 32.066*n_sulfur;
hydrogen = 1.00794*n_hydrogen;
/* Compute the formula */
cysteine = (oxygen + carbon + nitrogen + sulfur + hydrogen)/5;
/* Print answer */
printf("The average weight of the atoms in Cysteine is %8.5f \n",cysteine);
/* Exit program. */
return 0;
}