INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
im Sketch was hinzufügen
08.01.2019, 17:54
Beitrag #9
RE: im Sketch was hinzufügen
(08.01.2019 17:51)tauti1991 schrieb:  aber wenn man nur einmal pulsIn eingeben darf kann man ja nie 2 RC-Kanäle auslesen.
Ich habe Dir eine mögliche Alternative genannt. Die solltest Du testen.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.01.2019, 18:01
Beitrag #10
RE: im Sketch was hinzufügen
(08.01.2019 17:51)tauti1991 schrieb:  aber irgendwie muss man 2 Sounds ausgeben können
.....

Warum machst du es nicht, wenn du schon eine Anleitung hast ?

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.01.2019, 20:00
Beitrag #11
RE: im Sketch was hinzufügen
(08.01.2019 17:51)tauti1991 schrieb:  Denn Sketch kann man zwar runterladen in ein Polnischen Forum, aber kabiere nicht wo in denn Sketch die Sound sind.

Hättest Du mal einen direkten Link zum Sketch? Dann würde ich mal einen Blick drauf werfen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.01.2019, 14:15 (Dieser Beitrag wurde zuletzt bearbeitet: 09.01.2019 16:26 von tauti1991.)
Beitrag #12
RE: im Sketch was hinzufügen
Kann man nicht mit diesen Befehle einen zusätzlichen PIN auslesen und einfügen:
attachInterrupt: https://funduino.de/25-der-interrupt-bef...hinterrupt
PinChanceInderupt:

Der Arduino Nano hatt doch 2 PINS (2,3) wo mann Inderupt ausfüren kann.
Kann man nicht damit ein Inderupt/pulsIn kurz unterbrechen u. dann da denn Hupe/Horn Sound einfügen??


Mann kann auch mehrere PulsIn anwendungen nutzen
https://www.sparkfun.com/tutorials/348

NewPingLR ging es auch nicht

Wollte es jetzt so ungefähr lösen, aber leider spelt er jetzt nix ab

Meine Idee wäre mit 2 Interrupt befehle die ich einmal für RC_PIN schreibe und eins für RC_PIN_HORN schreibe
Mit attachInterrupt(digitalPinToInterrupt(rc_pin), playsound, CHANGE); wollte ich sie dann aufrufen.




Code:
#define RC_PIN_INTERRUPT // INTERRUPT 0 = DIGITAL PIN 2 - use the interrupt number in attachInterrupt
#define HORN_PIN_INTERRUPT // INTERRUPT 1 = DIGITAL PIN 3 - use the interrupt number in attachInterrupt
#define RC_PIN 2      // RC Throttle input pin
#define RC_PIN_HORN 3        // RC Horn input pin
#include <SD.h>                      // need to include the SD library
#define SD_ChipSelectPin 4  //using digital pin 4 on arduino nano 328, can use other pins
#include <TMRpcm.h>           //  also need to include this library...
#include <SPI.h>

TMRpcm tmrpcm;   // create an object for use in this sketch

unsigned long time = 0;
int numLoop = 0;
int throttle = 0;
int prevThrottle = 0;
int currThrottle = 0;
int playingSound = 0;

//RC scale
int rc_pin = 2;
int rc_pin_horn = 3;
unsigned long duration;
unsigned long prevDuration;


void setup() {
  tmrpcm.speakerPin = 9; //5,6,11 or 46 on Mega, 9 on Uno, Nano, etc
  Serial.begin(9600);
  pinMode(rc_pin, INPUT);
  pinMode(rc_pin_horn, INPUT);
  attachInterrupt(digitalPinToInterrupt(rc_pin), playsound, CHANGE);
  attachInterrupt(digitalPinToInterrupt(rc_pin_horn), playhorn, CHANGE);
  if (!SD.begin(SD_ChipSelectPin)) {  // see if the card is present and can be initialized:
    Serial.println("SD fail");
    return;   // don't do anything more if not
  }
  else {
    Serial.println("SD ok");
  }
  //PLay init file to tell sound version
  Serial.println("anlass.raw");
  tmrpcm.play("anlass.raw");
  while (tmrpcm.isPlaying()) {
    delay(2000);
  };
  Serial.println("setup end");
  
}

void loop() {
  
}
void playhorn () {
//Alles was dann das Horn abspielen soll
}
void playsound () {
//Alles was dann der RC_PIN abspielen soll
  ++numLoop;
  if (numLoop == 30000) {
    noInterrupts();
    duration = pulseIn(rc_pin, HIGH);
    interrupts();

    numLoop = 0;
    Serial.println(currThrottle);
    //Set new throttle value

    if (duration <= 990) {
      currThrottle = 0;
    };
    if (duration > 990) {
    currThrottle = 1;
  };
  if ((duration > 1050) && (duration <= 1167)) {
    currThrottle = 2;
  };
  if ((duration > 1167) && (duration <= 1332)) {
    currThrottle = 3;
  };
  if ((duration > 1332) && (duration <= 1498)) {
    currThrottle = 4;
  };
  if ((duration > 1498) && (duration <= 1664)) {
    currThrottle = 5;
  };
  if ((duration > 1664) && (duration <= 1830)) {
    currThrottle = 6;
  };
  if (duration > 1830) {
    currThrottle = 7;
  };

  //If currThrottle != prevThrottle set start playing new file
  if (currThrottle != prevThrottle) {

    if ((currThrottle == 0) && (prevThrottle > 0)) {
        tmrpcm.play("abstell.raw");
        Serial.println("abstell.raw)");
        while (tmrpcm.isPlaying()) {}
        prevThrottle = currThrottle;
      }
      if (currThrottle == 1) {
        if (currThrottle > prevThrottle) {
          tmrpcm.play("anlass.raw");
          Serial.println("anlass.raw");
          while (tmrpcm.isPlaying()) {}
        }
        playingSound = 1;
        prevThrottle = currThrottle;
      }
      if (currThrottle == 2) {
        tmrpcm.play("1.raw");
        Serial.println("1.raw");
        prevThrottle = currThrottle;
        playingSound = 1;
      }
      if (currThrottle == 3) {
        tmrpcm.play("2.raw");
        Serial.println("2.raw");
        prevThrottle = currThrottle;
        playingSound = 2;
      }
      if (currThrottle == 4) {
        tmrpcm.play("stand.raw");
        Serial.println("stand.raw");
        prevThrottle = currThrottle;
        playingSound = 3;
      }
      if (currThrottle == 5) {
        tmrpcm.play("stand.raw");
        Serial.println("stand.raw");
        prevThrottle = currThrottle;
        playingSound = 4;
      }
      if (currThrottle == 6) {
        tmrpcm.play("5.raw");
        Serial.println("5.raw");
        prevThrottle = currThrottle;
        playingSound = 5;
      }
      if (currThrottle == 7) {
        tmrpcm.play("6.raw");
        Serial.println("6.raw");
        prevThrottle = currThrottle;
        playingSound = 6;
      }
    }
    // Serial.println(tmrpcm.isPlaying());
    if ((currThrottle = prevThrottle) && (tmrpcm.isPlaying() == 0)) {

    if (playingSound == 1) {
        tmrpcm.play("1.raw");
        Serial.println("again 1.raw");
        prevThrottle = currThrottle;
      }
      if (playingSound == 2) {
        tmrpcm.play("2.raw");
        Serial.println("again 2.raw");
        prevThrottle = currThrottle;
      }
      if (playingSound == 3) {
        tmrpcm.play("stand.raw");
        Serial.println("again stand.raw");
        prevThrottle = currThrottle;
      }
      if (playingSound == 4) {
        tmrpcm.play("stand.raw");
        Serial.println("again stand.raw");
        prevThrottle = currThrottle;
      }
      if (playingSound == 5) {
        tmrpcm.play("5.raw");
        Serial.println("again 5.raw");
        prevThrottle = currThrottle;
      }
      if (playingSound == 6) {
        tmrpcm.play("6.raw");
        Serial.println("again 6.raw");
        prevThrottle = currThrottle;
      }
    }
  }
}

In denn Polnischen-Forum habe ich es jetzt geschaft denn Code hochzuladen.

Aber leider speichert er alles auf denn Arduino (ink. Sounds) u. braucht keine SD karte mehr.

Wurde aber gerne die SD Karte weiter verwenden da:
-eins Kann man so die Sounds sehr schlecht herstellen u. klingen dann irgendwie alle gleich.

https://www.alexrc.pl/viewtopic.php?f=17...2&start=54


Angehängte Datei(en)
.ino  ship_sound_V1_5.ino (Größe: 13,02 KB / Downloads: 16)
.h  ship_sound_V1_5.h (Größe: 126,12 KB / Downloads: 15)
.c  ShipSoundLib.c (Größe: 9,82 KB / Downloads: 30)
.h  ShipSoundLib.h (Größe: 2,52 KB / Downloads: 68)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.01.2019, 18:15
Beitrag #13
RE: im Sketch was hinzufügen
(09.01.2019 14:15)tauti1991 schrieb:  Mann kann auch mehrere PulsIn anwendungen nutzen
https://www.sparkfun.com/tutorials/348
Man kann mehrere verwenden, aber nicht parallel zueinander/gleichzeitig, sondern nur nacheinander. Auch bei Sparkfun steht nichts von gleichzeitig.

PulseIn kehrt erst nach der Messung bzw. dem Timeout zurück. Danach kann das nächste pulseIn loslegen. Schau Dir doch einfach den Quellcode in ...\arduino\hardware\avr\1.6.21\cores\arduino\wiring_pulse.c an.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.01.2019, 18:27
Beitrag #14
RE: im Sketch was hinzufügen
Hallo,
Also gleichzeitiges Auslesen geht meines Wissens
bei einem Arduino nur mit einen Summensignal.

Ich habe meine FS-IA6 auf 14 Kanal geflasht, und die läßt sich mittes I-Bus auslesen.
Bei einer QX7 ist es S-Bus ( inventiert ) , Graupner hat D-Bus, Futaba geht auch...
Einfach mal nach deiner Googlen.

Gruß, Markus

Immer in Stress
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.01.2019, 19:06
Beitrag #15
RE: im Sketch was hinzufügen
Wenn ich aber alles mit timeout beende, läuft aber der loop nicht weiter U. Der Sketch bzw. Sound wird auch beendet.
Darf aber nicht sein, er darf nur kurz beendet werden wenn ich denn Sound Horn abrufe u. Dann muss der erste wieder automatisch starten.

Wollte darum zwei attachInterrupt erstellen U. Zwischen denn breiten Interrupts hin und her steuern (Chance)

Aber Leider funktioniert es nicht U. Mit denn jetzigen. SKETCH geht nix mehr,
Keine Ahnung was ich noch machen soll das zwei Interups laufen??
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.01.2019, 10:49
Beitrag #16
RE: im Sketch was hinzufügen
(08.01.2019 12:20)tauti1991 schrieb:  Weiß nicht ob man 2 Befehle auf ein PIN9/Lautsprecher, abspielen kann, also gleichzeitig
o.

Muss da mit einen Befehl immer ein Befehl unterbrochen werden?
(meine es so:
befehl Sound Stand unterbrechen, dann Sound Hupe ausgeben, danach Sound Stand wieder laufen lassen, wenn ich denn Schalter der Hupe betätige)

Aus der verwendeten Library:

Zitat:Plays 8-bit PCM audio on pin 11 using pulse-width modulation (PWM).
* For Arduino with Atmega168 at 16 MHz.
*
* Supports insert sound clip inside the base sound clip for repeated sounds.
* Supports additional clip which will take priority over playing base clip
* Supports playing transition clips without skipping

Also:

* Du kannst damit nur einen Sound zur Zeit abspielen.
* Du mußt den Lautsprecher an Pin 11 ansprechen.
* Der Basis-Sound wird automatisch unterbrochen, wenn Du den zweiten Sound startest, und automatisch fortgesetzt, wenn der zweite zuende ist.

(Vielleicht hattest Du das inzwischen auch schon selbst rausgefunden ... ich war zwischendurch mal irgendwie verwirrt :-)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Sketch drucken Gerd42 1 159 08.05.2019 10:11
Letzter Beitrag: Tommy56
  Timer Sketch für OLED SSD1331 Talon 20 953 17.02.2019 10:48
Letzter Beitrag: Tommy56
  Sketch laden Arduino Pro Mini 5V ATmega 328P Herberto 6 400 13.01.2019 14:20
Letzter Beitrag: hotsystems
  Sketch Menü Alfaone79 9 911 05.11.2018 22:52
Letzter Beitrag: hotsystems
Rainbow Sketch lässt sich nicht editieren HKestermann 3 693 03.11.2018 11:23
Letzter Beitrag: Hilgi
  Anfänger bekommt den Sketch nicht zum Laufen Maschinenbauer 6 1.280 06.10.2018 21:01
Letzter Beitrag: Tommy56
  Sketch Name Tellen 4 664 02.10.2018 11:32
Letzter Beitrag: Tellen
  Leonardo macht keinen Auto-Reset (je nach Sketch) SebastianM 5 722 01.09.2018 07:49
Letzter Beitrag: amithlon
  Counter hinzufügen (Problem bin ich) Sasch600xt 5 657 29.08.2018 15:19
Letzter Beitrag: Hilgi
  Mit 022 compilierter Sketch - wie kompilieren mit akt. Version? DL1AKP 4 576 15.08.2018 12:49
Letzter Beitrag: DL1AKP

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste