Arduino Engineering-Kit-Rev-1. (AeK) AKR1000 Inbetriebnahme und Installation

Meine nächste Frage wäre zum MKR1000+MKR_Motor_Shield.

Neben der Ardiono-Duemilanove, habe ich den Arduino Engineering-Kit-Rev-1. (AeK) Das besteht aus Arduino-IDE, aus Matlab und HW: [MKR1000 + MKR_Motor_Shield + DC-Motor (angeschloßen an: encoder_input_1 und DC-Motor_1)]

Der AeK besteht aus 6 Chapters. 2 davon habe ich erfolgreich durchgearbeitet schon: da hat alles geklappt: - Inbetriebnahme von MKR1000 + Arduino-IDE: Musterprogramm für blinkende LED hat funktioneirt. - Inbetriebnahme von MKR1000 +MKR_Motor_Shield + DC_Motor (an encoder_1 und an Motor_3) gesteuert von Matlab und Simulink hat auch funktioniert: das DC-Motor hat sich mit Drehlazhl-Stufen gedreht wie erwartet. Geschwindigkeiten u.a. waren auch am Scope aufgezeichnet.

Frage entsteht beim Beginn des Chapters_3. Da wird angeboten, zuerst den Motortest (nur Arduino-IDE + HW: MKR1000, Motor_Carrier + DC_Motor) durchzuführen und dafür steht schon fertige C-Code zum download zur Verfügung. Ich habe C-Code in die Arduino-IDE runtergeladen.

Beim Kompilieren erschien unten nur der weise Text wie üblich und Message: Kompilieren abgeschlossen. Aber beim Hochladen in die HW: zuerst kam der weise Text: Vor dem Ende des weissen Textes war (im unteren IDE-Fenster-Teil: IDE-Response) der eingestellte COM9 erwähnt und danach aus irgendeinem Grund auch COM5 : Found upload port: COM5

Danach folgte der orande Text und das angeschloßene DC-Motor hat sich nicht gedreht (wie erwartet). Meine MKR1000 ist HW-mäßig nur über einen COM9 an USB (vom PC) angeschloßen.

Könnte ich die Frage hier stellen (mit Code, Arduino-IDE-Responses und screenshots) oder gehört die rage dem MKR1000-Thread? Wenn im MKR1000-Thread: dann soll ich auf English fragen (na geht...) oder auf Deutsch (was mir wesentlich leichter ist)?

brigsu: Könnte ich die Frage hier stellen (mit Code, Arduino-IDE-Responses und screenshots) oder gehört die rage dem MKR1000-Thread? Wenn im MKR1000-Thread: dann soll ich auf English fragen (na geht...) oder auf Deutsch (was mir wesentlich leichter ist)?

Meiner Meinung nach kannst Du weitere Fragen in diesem Thread stellen, auch wenn es ursprünglich um das Lernset dieses „unwerten“ Verlags ging. Ich bin jetzt allerdings sowieso erst mal bis morgen weg hier.

Gruß und Tschüss

Gregor

Danke.

Ok, dann Arduino Engineering Kit, Rev. 1 Chapter 3.1 Motor_test

Auszug aus der Anleitung:
Beginnen wir mit dem Anschluss des Motors an den Halter M1 und den Encoder an den HA1/HB1.
Wir zeigen Ihnen, wie Sie dies im Codebeispiel tun.
Zuallererst werden wir den Motor bewegen. Laden Sie dazu diesen Code in Ihren MKR1000 hoch:

bei mir sind die HW-Komponente so wie auf dem oberen Bild und so ist die HW auch angeschlossen.
Dann lade ich den vorgeschlaganen C-Code “Motor_test.ino” in die Arduino-IDE runter:

#include <MKRMotorCarrier.h>
#define INTERRUPT_PIN 6

//Variable to store the battery voltage
static int batteryVoltage;

//Variable to change the motor speed and direction
static int duty = 0;

void setup() 
{
  //Serial port initialization
  Serial.begin(115200);
  while (!Serial);

  //Establishing the communication with the motor shield
  if (controller.begin()) 
    {
      Serial.print("MKR Motor Shield connected, firmware version ");
      Serial.println(controller.getFWVersion());
    } 
  else 
    {
      Serial.println("Couldn't connect! Is the red led blinking? You may need to update the firmware with FWUpdater sketch");
      while (1);
    }

  // Reboot the motor controller; brings every value back to default
  Serial.println("reboot");
  controller.reboot();
  delay(500);
  
  //Take the battery status
  float batteryVoltage = (float)battery.getConverted();
  Serial.print("Battery voltage: ");
  Serial.print(batteryVoltage);
  Serial.print("V, Raw ");
  Serial.println(battery.getRaw());
}


void loop() {
  
  //Take the battery status
  float batteryVoltage = (float)battery.getConverted();
  
  //Reset to the default values if the battery level is lower than 11V
  if (batteryVoltage < 11) 
  {
    Serial.println(" ");
    Serial.println("WARNING: LOW BATTERY");
    Serial.println("ALL SYSTEMS DOWN");
    M1.setDuty(0);
    M2.setDuty(0);
    M3.setDuty(0);
    M4.setDuty(0);
    while (batteryVoltage < 11) 
    {
      batteryVoltage = (float)battery.getConverted();
    }
  }
  else
  {
    //Motor test
    for (duty=-100; duty<100; duty+=5)
    {
      Serial.print("Motor Duty: ");
      Serial.println(duty);
      M1.setDuty(duty);
      M2.setDuty(duty);
      M3.setDuty(duty);
      M4.setDuty(duty);
      delay(50);
    }
    for (duty=100; duty>-100; duty-=5)
    {
      Serial.print("Motor Duty: ");
      Serial.println(duty);
      M1.setDuty(duty);
      M2.setDuty(duty);
      M3.setDuty(duty);
      M4.setDuty(duty);
      delay(50);
    }
    
  //Keep active the communication MKR1000 & MKRMotorCarrier
  //Ping the samd11
  controller.ping();
  //wait
  delay(50);
  }
}

Dann Kompiliere ich den oberen C-Code per Arduino-IDE: es kommt als Response nur weisse Text. Es sieht wie ordnungsmäßig aus. Bei Bedarf könnte ich Response vom Kompilieren auch hier auffuhren.

Dann “Hochladen” in die HW per Arduino-IDE. Hier sind Fragmente der Response vom Hochladen aus der Arduino_IDE:

------------------------------------------------------------------------
vollständige IDE-Response nach dem Hochladen ist im Attachment zu diesem Post, weil zu groß: Response_Hochladen___Motor_test.doc

Sketch wird kompiliert…

Linking everything together…
… …
Bibliothek MKRMotorCarrier in Version 1.0.5 im Ordner: C:…Documents\Arduino\libraries\MKRMotorCarrier wird verwendet
Bibliothek Wire in Version 1.0 im Ordner: C:\ProgramData\MATLAB\SupportPackages\R2019a\3P.instrset\arduinoide.instrset\idepkgs\packages\arduino\hardware\samd\1.6.20\libraries\Wire wird verwendet
Der Sketch verwendet 23028 Bytes (8%) des Programmspeicherplatzes. Das Maximum sind 262144 Bytes.
Erzwinge Reset durch öffnen/schließen mit 1200 bps auf dem Port COM9
PORTS {COM9, } / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {COM5, } => {COM5, }
Found upload port: COM5
C:\ProgramData\MATLAB\SupportPackages\R2019a\3P.instrset\arduinoide.instrset\idepkgs\packages\arduino\tools\bossac\1.7.0/bossac.exe -i -d --port=COM5 -U true -i -e -w -v C:…\AppData\Local\Temp\ArduinoServer\MW/Motor_test.ino.bin -R
Set binary mode
readWord(addr=0)=0x20007ffc
readWord(addr=0xe000ed00)=0x410cc601
readWord(addr=0x41002018)=0x10010305
version()=v2.0 [Arduino:XYZ] Dec 20 2016 15:36:43
chipId=0x10010005
Connected at 921600 baud
readWord(addr=0)=0x20007ffc
readWord(addr=0xe000ed00)=0x410cc601
readWord(addr=0x41002018)=0x10010305
Atmel SMART device 0x10010005 found
write(addr=0x20004000,size=0x34)
… …

[===================== ] 70% (256/365 pages)write(addr=0x20005000,size=0x1000)
writeBuffer(scr_addr=0x20005000, dst_addr=0x6000, size=0x1000)

[========================== ] 87% (320/365 pages)write(addr=0x20005000,size=0xb40)
writeBuffer(scr_addr=0x20005000, dst_addr=0x7000, size=0xb40)

[==============================] 100% (365/365 pages)
done in 0.186 seconds

Verify 23332 bytes of flash with checksum.
checksumBuffer(start_addr=0x2000, size=0x1000) = 21f4

checksumBuffer(start_addr=0x6000, size=0x1000) = 9b38
checksumBuffer(start_addr=0x7000, size=0xb24) = 145e
Verify successful
done in 0.023 seconds
CPU reset.
readWord(addr=0)=0x20007ffc

------------------------------------------------------------

In der zuletzt im Attachment aufgeführten Arduino-Response (nach dem Hochladen in die HW) habe ich
die Stelle Found upload port: COM5 fett markiert. Es ging hier um COM5, obwohl im IDE bei mir ist die bewusste Einstellung nur auf COM9.
An der Stelle folgten ein Paar sounds und ab der Stelle war der Response-Text orange farbiert.
Meine Frage wäre: wo könnte das Fehler liegen?

Nach dem C-Code “Motor_test.ino” in der Anleitung geschrieben:
Sobald wir wissen, wie man einen Motor bewegt, ist der nächste Schritt, von den Encodern zu lesen…

Aus der Anleitung:
ERWARTETE ERGEBNISSE
Nach dem Ausführen der ersten Skizze sollten Sie verstehen, dass die Motoren dreht sich einen Sweep
seit Stoppposition bis zur höchsten Geschwindigkeit in beiden Richtungen.
Sie können den Motor an jedem der Motoranschlüsse anschließen, das Verhalten sollte das gleiche sein.

Es ist also erwartet, dass der Motor sich drehen soll. Der Motor dreht sich aber nicht.
Ich bitte euch um Hilfe.

Grüß
Igor

Response_Hochladen___Motor_test.doc (26.8 KB)

Gibt es kein Matlab Forum, in dem Du Deine Fragen stellen kannst?

Wenn es Probleme mit dem Hochladen des Codes gibt, kann man das in der Arduino IDE oder Toolchain debuggen. Wenn Matlab nicht den richtigen COM Port finden kann, dann ist das ein Matlab Problem.

Hallo,

ich hätte weitere Frage zu dem Lernset mir Arduino Duemilanove, ATmega168

//Erstes_Programm.pde
int ledPin = 13;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
  Serial.println("Unser erstes Arduino-Programm");
  Serial.println();
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.print("Die Summe aus 5 + 188 lautet ");
  Serial.print(5+188);

  while(true)
  {
    digitalWrite(ledPin, HIGH);
    delay(500);
    digitalWrite(ledPin, LOW);
    delay(500);
    continue;
  }
}

Das Kompilieren schein durchgelaufen zu sein mit Response: Kompilieren abgeschlossen Problem beim Hochladen, anbei ist die Response:

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\ProgramData\MATLAB\SupportPackages\R2019a\3P.instrset\arduinoide.instrset\idepkgs\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\ProgramData\MATLAB\SupportPackages\R2019a\3P.instrset\arduinoide.instrset\idepkgs\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Onri\Documents\Arduino\libraries -fqbn=arduino:avr:diecimila:cpu=atmega168 -ide-version=10805 -build-path C:\Users\Onri\AppData\Local\Temp\ArduinoServer\MW -warnings=none -build-cache C:\Users\Onri\AppData\Local\Temp\arduino_cache_411886 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Onri\Documents\Arduino\Erstes_Programm.pde\Erstes_Programm.pde.ino C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\ProgramData\MATLAB\SupportPackages\R2019a\3P.instrset\arduinoide.instrset\idepkgs\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\ProgramData\MATLAB\SupportPackages\R2019a\3P.instrset\arduinoide.instrset\idepkgs\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Onri\Documents\Arduino\libraries -fqbn=arduino:avr:diecimila:cpu=atmega168 -ide-version=10805 -build-path C:\Users\Onri\AppData\Local\Temp\ArduinoServer\MW -warnings=none -build-cache C:\Users\Onri\AppData\Local\Temp\arduino_cache_411886 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Onri\Documents\Arduino\Erstes_Programm.pde\Erstes_Programm.pde.ino Using board 'diecimila' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr Using core 'arduino' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr Detecting libraries used... "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega168 -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_DUEMILANOVE -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "C:\Users\Onri\AppData\Local\Temp\ArduinoServer\MW\sketch\Erstes_Programm.pde.ino.cpp" -o "nul" Generating function prototypes... "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega168 -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_DUEMILANOVE -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "C:\Users\Onri\AppData\Local\Temp\ArduinoServer\MW\sketch\Erstes_Programm.pde.ino.cpp" -o "C:\Users\Onri\AppData\Local\Temp\ArduinoServer\MW\preproc\ctags_target_for_gcc_minus_e.cpp" "C:\Program Files (x86)\Arduino\tools-builder\ctags\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\Onri\AppData\Local\Temp\ArduinoServer\MW\preproc\ctags_target_for_gcc_minus_e.cpp" Sketch wird kompiliert... "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega168 -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_DUEMILANOVE -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "C:\Users\Onri\AppData\Local\Temp\ArduinoServer\MW\sketch\Erstes_Programm.pde.ino.cpp" -o "C:\Users\Onri\AppData\Local\Temp\ArduinoServer\MW\sketch\Erstes_Programm.pde.ino.cpp.o" Compiling libraries... Compiling core... Using precompiled core Linking everything together... "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc" -w -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega168 -o "C:\Users\Onri\AppData\Local\Temp\ArduinoServer\MW/Erstes_Programm.pde.ino.elf" "C:\Users\Onri\AppData\Local\Temp\ArduinoServer\MW\sketch\Erstes_Programm.pde.ino.cpp.o" "C:\Users\Onri\AppData\Local\Temp\ArduinoServer\MW/....\arduino_cache_411886\core\core_arduino_avr_diecimila_cpu_atmega168_0c812875ac70eb4a9b385d8fb077f54c.a" "-LC:\Users\Onri\AppData\Local\Temp\ArduinoServer\MW" -lm "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 "C:\Users\Onri\AppData\Local\Temp\ArduinoServer\MW/Erstes_Programm.pde.ino.elf" "C:\Users\Onri\AppData\Local\Temp\ArduinoServer\MW/Erstes_Programm.pde.ino.eep" "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-objcopy" -O ihex -R .eeprom "C:\Users\Onri\AppData\Local\Temp\ArduinoServer\MW/Erstes_Programm.pde.ino.elf" "C:\Users\Onri\AppData\Local\Temp\ArduinoServer\MW/Erstes_Programm.pde.ino.hex" Der Sketch verwendet 2096 Bytes (14%) des Programmspeicherplatzes. Das Maximum sind 14336 Bytes. Globale Variablen verwenden 248 Bytes (24%) des dynamischen Speichers, 776 Bytes für lokale Variablen verbleiben. Das Maximum sind 1024 Bytes. C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega168 -carduino -PCOM9 -b19200 -D -Uflash:w:C:\Users\Onri\AppData\Local\Temp\ArduinoServer\MW/Erstes_Programm.pde.ino.hex:i

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

Using Port : COM9 Using Programmer : arduino Overriding Baud Rate : 19200 avrdude: ser_open(): can't open device "\.\COM9": Das System kann die angegebene Datei nicht finden.

avrdude done. Thank you.

Problem beim Hochladen auf das Board. Hilfestellung dazu unter http://www.arduino.cc/en/Guide/Troubleshooting#upload. Fehler beim Öffnen des seriellen Ports "COM9". (Port not found)

Also .......COM9: Das System kann die angegebene Datei nicht finden. Wie könnte man das berichtigen? Was ist hier falsch?

Außerdem, das Programm(C++_Code) für blinkenden LED war früher erfolgreich hochgeladen und ausgeführt an der IDE und an der HW... Nur habe ich bevor Mal umgeschaltet um mit MKR1000 zu arbeiten... und jetzt habe ich zurück auf Arduino-Duemilanove umgeschaltet.

|500x261

Und zur Baudrate... in Response war die 19200 während im Code: 9600 ?

Die Meldungen sind unleserlich. Lassen sich die nicht mit den originalen Zeilenumbrüchen und ohne Farbe einfügen?

Siehst Du Dir eigentlich an, was Du postest? Wenn ja: Siehst Du nicht, wie schlecht das zu lesen ist? Und warum stellst Du eine Frage zum Franzis'-Lernset nicht in dem Thread, der bereits dazu existiert?

Irritierte Grüße

Gregor

Und zur Baudrate... in Response war die 19200 während im Code: 9600 ?

Unterscheide zwischen der Bootloader Konfiguration und deiner selbstgewählten. Das hat nichts miteinander zu tun. Oder hast du dir etwa einen eigenen Bootloader gebastelt, welcher mit 9600 läuft?

Das System kann die angegebene Datei nicht finden.

Was sagt der Gerätemanager?

DrDiettrich:
Die Meldungen sind unleserlich. Lassen sich die nicht mit den originalen Zeilenumbrüchen und ohne Farbe einfügen?

Es tut mir leid. Die vollständige Response vom Arduino noch dem Hochladen war zu groß und daher war beim posten nicht angenommem.
Anderseits bin ich nicht sicher ob ich die IDE-Response nach dem Hochladen - hier als Anhang platzieren darf… Sie kennen das Thema Cyber-Sicherheit und ich würde es verstehen, wenn jemand die Anhänge nicht öffnen wollte.
Oder dürfte ich Responses in Anhängen platzieren? Wenn ja - ginge als xxx.doc?
Zur Leserlichkeit - ja… ich sehe, die Bilder sind nicht gut lesbar. Aber… es tut mir leid: anders - es muss man noch können. :slight_smile:
Daher, habe ich bevorzugt, so zu platzieren… als im Anhang.
Und Anzahl der Fragen von mir ist sowieso genug, oder?
Und die Response von IDE war gerade farbig.

Ich habe es probiert, die "Erstes_Programm" im anderen PC zu kompilieren, hochzuladen und auszuführen. Und das hat genau entsprechend der Erwartung geklappt.

Die Einstellung im anderen PC scheint identisch zum ersten PC zu sein. Aber im ersten klappt irgendwie nicht.

gregorss: Siehst Du Dir eigentlich an, was Du postest? Wenn ja: Siehst Du nicht, wie schlecht das zu lesen ist? Und warum stellst Du eine Frage zum Franzis'-Lernset nicht in dem Thread, der bereits dazu existiert?

Irritierte Grüße

Gregor

Zur Sichtbarkeit der Bilder - ich muss mich dazu noch schlau machen :roll_eyes:

Ich ging davon aus, dass ich in diesem Thread alle meine Fragen stellen dürfte. Wenn ich falsch verstanden habe - entschuldige ich mich.

Dann also, in diesem Thread werde ich Fragen zum Arduino-Engineering-Kit mit MKR1000 stellen und in bisherigen Thread - werde ich (wenn genehmigt) werde ich über Franzis-Lernset mit Duemilanove fragen.

Nur, die Diskussion zur letzten Frage zur Duemilanove bitte ich noch hier ausnahmsweise zu ermöglichen.

Beschämte Grüße :roll_eyes:

combie: Unterscheide zwischen der Bootloader Konfiguration und deiner selbstgewählten. Das hat nichts miteinander zu tun. Oder hast du dir etwa einen eigenen Bootloader gebastelt, welcher mit 9600 läuft?

Bevor arbeitete ich an Arduino Engineering Kit (Arduino- & Matlab- Steuerungen). Ich versuche es, parallel zu machen. Meine Idee war, dass Matlab die COM-Verbindung blockeren könnte. Darüber war im Engineering-Kit erwähnt. Um das zu vermeinden, muss man im Matlab: clear a // a = arduino zu machen. Das habe ich gemacht...aber trodzdem ging "Erstes_Programm" an an Primären PC nicht. Die gute Nachricht: auf dem zweiten PC "Erstes_Programm" funktionert und wird korrekt ausgeführt...

combie: Unterscheide zwischen der Bootloader Konfiguration und deiner selbstgewählten. Das hat nichts miteinander zu tun. Oder hast du dir etwa einen eigenen Bootloader gebastelt, welcher mit 9600 läuft?

[u]Was sagt der Gerätemanager?[/u]

Der Gerätemanager vom ersten PC (wo nich funktioniert) sagt:

Also... USB-Serial-Kabel konnte nicht installiert werden. => Keine Verbindung mit Arduino-Duemilanove. Daher konnte vom Arduino-IDE kein COM9 gefunden werden.

falsche Eintrag

Gerätemanager ist Im Anhang: vielleicht so ist besser sichtbar…?

Der Treiber sollte eigentlich bei der Installation der Arduino IDE installiert werden. Welches Betrübsystem läuft denn auf den Rechnern?

Wenn der Gerätemanager sagt Port #0002 dann hängt was an COM2, für das kein passender Treiber gefunden wurde.

Ich würde die Arduino IDE nochmal installieren, möglichst eine ältere Version, und dort nachschauen, welche COM Ports gefunden werden und ggf. brauchbar sind. Aussuchen kann man sich den COM Port nicht, das macht das System.

Hallo,

ich kehre zum Arduino Engineering Kit Rev 1 (basiert auf MKR1000 + Motor_Carrier + HW) zurück.
Jetzt nehme ich den Ultraschallsensor in Betrieb:
Imgur

Nach dem ich C++Code in die HW hochlade und ausführen ließ, bekomme ich im seriellen Monitor Werte von ca. 810 cm bis ca. 830 cm (das sollte Abstandmessung bis zum nächsten Hindernis sein).

Ich wende den Ultraschalsensor um 90°, dann noch um einen Wilkel… so dass der neue Abstand zum nächsten Hindernis 3-4 Mal kleiner als bisher war. → Trotzdem bleiben die Werte im Seriellen Monitor wie bisher (keine entsprechende Änderung).

Imgur

Meine Frage wäre: woran das liegen könnte?
Wenn was wesentlich kaputt/nicht genau beim Sensor oder im C++Code gewesen wäre, dann könnte ich in dem Fall überhaupt keine Werte im Seriellen Monitor sehen.

Fehler in der Hard- oder Software?

/***********************************************************************************

Arduino Engineering Kit Ultrasonic Range Sensor Test
This sketch demonstrates some APIs exposed by the MKR Motor Shield library.
For the complete list, visit the reference page on https://www.arduino.cc/en/Reference/MKRMotorShield
This example code is in the public domain.

Description: Uses the seed ultrasonic range sensor connected to IN1 or IN2 and plot the values
in serial monitor
****************************************************************************************/

// this constant won’t change. It’s the pin number of the sensor’s output:

//const int pingPin = A6; // IN1
//const int pingPin = A1; // IN2
//const int pingPin = A5; // IN3
const int pingPin = A2; // IN4

void setup() {
// initialize serial communication:
Serial.begin(9600);
}

void loop() {
// establish variables for duration of the ping, and the distance result
// in inches and centimeters:
long duration, inches, cm, mm;

// The sensor is triggered by a HIGH pulse of 2 or more microseconds.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);

// The same pin is used to read the bounced signal: The latency of this HIGH pulse
//represents the flight time of the sound wave in microsencods.

pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);

// convert the time into a distance
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
mm = microsecondsToMilimeters(duration);

Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm, ");
Serial.print(mm);
Serial.print(“mm”);
Serial.println();

delay(100);
}

long microsecondsToInches(long microseconds) {
// There are 73.746 microseconds per inch (i.e. sound travels at 1130 feet per second).
// This gives the distance travelled by the soundwave, back and forth,
// We divice the total time by 2 to get the distance to the object.
return microseconds / 74 / 2;
}

long microsecondsToMilimeters(long microseconds) {
// The speed of sound is 340 m/s or 2.9 microseconds per milimeter.
// We divice the total time by 2 to get the distance to the object.
return microseconds / 2.9 / 2;
}

long microsecondsToCentimeters(long microseconds) {
// The speed of sound is 340 m/s or 29 microseconds per centimeter.
// We divice the total time by 2 to get the distance to the object.
return microseconds / 29 / 2;
}