Day 16

Lab:
//potentiometer control

int M1_Left = 12; //Motor Input 1
int M1_Right = 11; //Motor Input 2
int POT = 0;
int spd = 0;

void stop(){
 digitalWrite(M1_Left, LOW);
 digitalWrite(M1_Right , LOW);
}


void setup()
{
 pinMode(M1_Left, OUTPUT);
 pinMode(M1_Right , OUTPUT);
 Serial.begin(9600);
}
void loop()
{
 POT = analogRead(A1);
 if(POT >= 562)
 {
 spd = map(POT, 562,1023,0,255);
 analogWrite(M1_Left, spd);
 digitalWrite(M1_Right, LOW);
 }
 else if(POT <= 462)
 {
 spd = map(POT, 462,0,0,255);
 analogWrite(M1_Right, spd);
 digitalWrite(M1_Left, LOW);
 }
 else if(POT>462 && POT < 562)
 {
  stop();
 }
 delay(10);
 Serial.print(POT);
 Serial.print("    ");
 Serial.println(spd);

}

Homework:

//Serial motor control
int M1_Left = 12; //Motor Input 1
int M1_Right = 11; //Motor Input 2
int POT = 0;
int spd = 150;
int sRead = 0;


void stop(){
 digitalWrite(M1_Left, LOW);
 digitalWrite(M1_Right , LOW);

void setMotor(int mode)
{
switch (mode)
{
  case 49:
  stop();
  Serial.println("Motor stopped");
 //Serial.println(sRead);
  break;
  case 50:
  Serial.println("Motor set forward");
 //Serial.println(sRead);
  analogWrite(M1_Right, spd);
 digitalWrite(M1_Left, HIGH);
 break;
 case 51:
 Serial.println("Motor set reverse");
 //Serial.println(sRead);
 analogWrite(M1_Right, spd);
 digitalWrite(M1_Left, LOW);
 break;
 default:
 //Serial.println(sRead);
 analogWrite(M1_Right, spd);
 break;
}
}

void setup()
{
 pinMode(M1_Left, OUTPUT);
 pinMode(M1_Right , OUTPUT);
 Serial.begin(9600);
 Serial.println("Motor settings:\n");
 Serial.println("1: Stop \n2: Forward \n3: Reverse \n +: Increase speed \n-:Decrease speed \n");
 
}
void loop()
{
  if(Serial.available() > 0)
  {
    sRead = Serial.read();
    if(sRead == '-')
    {
      spd -= 10;
      Serial.println("Motor speed decreased");
    }
    if(sRead == '+')
    {
      spd += 10;
      Serial.println("Motor speed increased");
    }
    setMotor(sRead);
  }
}
  


//program stops at line after the while loop because of a "syntax error" also does not print "1"

/*This program reads a file of ENSO index values and
determines the maximum El Nino conditions in the file.*/

#include <stdio.h>
#define FILENAME "ENSO1.txt"
#define MAX_SIZE 1000

int main(void)
{
/*declare variables and function prototypes*/
int k = 0, year[MAX_SIZE], qtr[MAX_SIZE], max_k = 0;
double index[MAX_SIZE];
FILE *enso;

printf("1");

/*read sensor data file*/
enso = fopen(FILENAME, "r");
if(enso == NULL)
{
printf("Error opening inout file. \n");
}
else
{
while (fscanf(enso, "%d %d %lf", year + k, qtr + k, index + k == 3)
{
if(*(index + k) > *(index + max_k))
{
max_k = k;
}
k++;
}
}

/*print data for el nino conditions*/
printf("Maximum El Nino Conditions in Data File \n");
printf("Year: %d, Quarter: %d \n", *(year + max_k), *(qtr + max_k));

/*close file*/
fclose(enso);

return 0;
}

Comments

Popular posts from this blog

DAY 17

day 19

Day 21