• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Kod dla początkującego
#11
Niestety po tej małej modyfikacji jasność się nie stała
 
Odpowiedź
#12
bo cm nie jest zmienną odpowiedzialną za odległość tak ma być jak poniżej

if ( echo < 10)command = 'S';

Kod:
#include <Servo.h>
Servo myservo;
#include <NewPing.h>
#define TRIGGER_PIN  11
#define ECHO_PIN     12  
#define MAX_DISTANCE 200
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
int pos = 0;  
byte state = 1;
long pm = 0;
byte echo = 0;

int Motor1 = 4;
int Motor2 = 5;
int Motor3 = 6;
int Motor4 = 7;

char command = 'S';
int velocity = 0;


void setup()
{  
Serial.begin(9600);                  
pinMode(Motor1, OUTPUT);
pinMode(Motor2, OUTPUT);
pinMode(Motor3, OUTPUT);
pinMode(Motor4, OUTPUT);
pinMode(TRIGGER_PIN, OUTPUT); //Pin, do którego podłączymy trig jako wyjście
pinMode(ECHO_PIN, INPUT);

myservo.attach(8);  

}

void loop(){


{
  long cm = millis();

if ( cm - pm > 1 )echo = sonar.ping_cm();
if ( cm - pm > 10 and state == 1){
   pos = constrain(pos, 0, 180);
  
   pos++;
   myservo.write(pos);              
if (pos >= 180)state = 2;
   pm = cm;}

if ( cm - pm > 10 and state == 2){
   pos = constrain(pos, 0, 180);
   pos--;
   myservo.write(pos);              
if (pos <= 0)state = 1;
   pm = cm;}
    
//   Serial.print(pos);
//   Serial.print(" - ");
//   Serial.print(echo);
//   Serial.println("cm");
    
}
     if (Serial.available() > 0)command = Serial.read();
    
    
  if ( echo < 10)command = 'S';  
    
   switch(command){
   case 'F':  
   digitalWrite(Motor1, HIGH);    
   digitalWrite(Motor4, HIGH);
      break;
   case 'B':  
      digitalWrite(Motor2, HIGH);
      digitalWrite(Motor3, HIGH);
     break;
   case 'R':  
      digitalWrite(Motor2, HIGH);
      digitalWrite(Motor4, HIGH);
     break;
   case 'L':
      digitalWrite(Motor1, HIGH);
      digitalWrite(Motor3, HIGH);
     break;
   case 'S':  
      digitalWrite(Motor1, LOW);
      digitalWrite(Motor2, LOW);
      digitalWrite(Motor3, LOW);
      digitalWrite(Motor4, LOW);
     break;

    
      }
}
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości