Benutzer:BerndS: Unterschied zwischen den Versionen
BerndS (Diskussion | Beiträge) |
BerndS (Diskussion | Beiträge) |
||
| Zeile 2: | Zeile 2: | ||
How to use the Husqvarna 260 ACX Ultra Sonicboard as a bumper. | How to use the Husqvarna 260 ACX Ultra Sonicboard as a bumper. | ||
| + | |||
| + | Pin out JST | ||
| + | pin1 GND | ||
| + | pin2 +5V | ||
| + | pin3 Signal out (yellow line in picture) | ||
| + | pin4 Signal in (pink line in picture, Ultra Sonic burst) | ||
| + | |||
| + | |||
| + | [[Datei:OsziUS260.JPG]] | ||
| + | |||
Arduino Code: | Arduino Code: | ||
Version vom 12. Februar 2025, 12:28 Uhr
Husqvarna 260 ACX Ultra Sonic
How to use the Husqvarna 260 ACX Ultra Sonicboard as a bumper.
Pin out JST pin1 GND pin2 +5V pin3 Signal out (yellow line in picture) pin4 Signal in (pink line in picture, Ultra Sonic burst)
Arduino Code:
_______________________________________________________________
- define threshold 20
- define Sonic_out 03 //10
- define Sign_in 02 //25
- define trigger 04
- define Bumper 05
- define nBumper 06
int i; unsigned long time_cnt_start; unsigned long time_cnt; float average_t; float distance; bool int_flag=1; bool valid = 0;
void setup() {
Serial.begin(115200);
pinMode(Sonic_out, OUTPUT);
digitalWrite(Sonic_out,0);
digitalWrite(trigger,0);
pinMode(Sign_in, INPUT);
pinMode(Bumper, OUTPUT);
pinMode(nBumper, OUTPUT);
Serial.println("Ultra Sonic Start");
}
void loop() {
detachInterrupt(digitalPinToInterrupt(Sign_in));
for (i=0;i<10;i++){
digitalWrite(Sonic_out,1);
delayMicroseconds(4);
digitalWrite(Sonic_out,0);
delayMicroseconds(9);
}
digitalWrite(Sonic_out,0);
while(digitalRead(!Sign_in)) { }
delayMicroseconds(1300);
attachInterrupt(digitalPinToInterrupt(Sign_in),start_cnt,RISING);
delay(25);
if (!valid)stop_cnt();
average_t=average_t*0.95+time_cnt*0.05;
distance=average_t*33000/1000000;
// Serial.print(" Laufzeit: "); // Serial.print(average_t);
Serial.print(" Distanz: ");
Serial.print(distance); // +/- 20%
Serial.println();
if( distance<=threshold){
digitalWrite(Bumper,1);
digitalWrite(nBumper,0);
}else{
digitalWrite(Bumper,0);
digitalWrite(nBumper,1);
}
}
void start_cnt(){ // start time counting with rising trigger
valid = 0;
detachInterrupt(digitalPinToInterrupt(Sign_in));
time_cnt_start = micros();
//Serial.print("start ");
digitalWrite(trigger,1);
attachInterrupt(digitalPinToInterrupt(Sign_in),stop_cnt,FALLING);
}
void stop_cnt(){ // stop time counting with first falling trigger
detachInterrupt(digitalPinToInterrupt(Sign_in));
time_cnt = micros()-time_cnt_start;
//Serial.print("stop ");
valid = 1;
digitalWrite(trigger,0);
}
_____________________________________________________________________________
Husqvarna 260 ACX Ultra Sonic Board