Forum: Mikrocontroller und Digitale Elektronik Wie Drehzahl messen und auf CAN senden?


von Lukas R. (wu-shu)


Lesenswert?

Hi Leute,

für ein Uniprojekt soll ich einen Drehzahlsensor auswerten und die 
Drehzahl  auf den CAN Bus senden. Es sollte alle 10ms die Drehzahl auf 
den CAN gesendet werden.

Der Drehzahlsensor ist ein induktiver Sensor 
(http://www.balluff.com/media/DE_DE_154317.pdf).

Der AT90CAN128 ist für die Auswertung gedacht. Das steht aber noch nicht 
fest. Wenn jemand einen besseren kennt, bitte nennen.

Nun suche ich einen möglichst fehlerunempfindlichen Schaltplan (EMV 
usw.) und ein einfaches Programm für den Controller.
Ich selbst habe fast keine Erfahrung was das Schaltungslayout und die 
Programmierung betrifft. Hat jemand eventuell eine Schritt für Schritt 
Anleitung für eine ähnliche Problemstellung oder sogar fertige 
Schaltpläne oder Programme?
Für mich ist es wichtig die schnellste Lösung zu finden, da ich Mitte 
Januar fertig sein muss.

Falls ich auf dem Holzweg bin und es bessere Lösungswege gibt, ich bin 
für alles offen.

Ich hoffe ihr könnt mich bei meinem Vorhaben unterstützen

p.s. mir wurde gesagt, dass man die Drehzahl über den MicroMod 
(http://www.peak-system.com/PCAN-MicroMod.220.0.html) auf den CAN geben 
kann. Der ist aber zu langsam in der Verarbeitung der Signale, sodass 
nur alle 60ms auf den CAN gesendet werden kann. Ich muss aber unbedingt 
10ms hinbekommen.

von Dollmann (Gast)


Lesenswert?

Lukas Retber schrieb:

> ... für ein Uniprojekt soll ich einen Drehzahlsensor auswerten ...

Heutzutage ist es nicht wichtig rechtzeitig zu lernen und mit der Arbeit 
zu beginnen, sondern rechtzeitig mit dem Posten um fertige Programm und 
Schaltpläne. Viel Glück.

von m.n. (Gast)


Lesenswert?

Lukas Retber schrieb:
> Es sollte alle 10ms die Drehzahl auf
> den CAN gesendet werden.

Wenn Dein Sensor einen Impuls/Umdrehung abgibt, muß Deine minimale 
Drehzahl 6000U/min. betragen. Ist Dir das bewußt?

von Clemens S. (zoggl)


Lesenswert?


von Pascal42 (Gast)


Lesenswert?

https://www.olimex.com/Products/AVR/Development/AVR-CAN/
Das würde ich kaufen. 25€. Hat den AT90CAN128.
Hast Du einen CAN Monitor, also einen USB Adapter?

von Lukas R. (wu-shu)


Lesenswert?

> Wenn Dein Sensor einen Impuls/Umdrehung abgibt, muß Deine minimale
> Drehzahl 6000U/min. betragen. Ist Dir das bewußt?

Der Sensor wird etwa 100 Impulse/Umdrehung abgeben, da der Sensor ein 
Impulsrad abtastet. Pro Umdrehung also 100 Impulse.

> schmeiß so ein ding hin und lass dir vom support die anleitung vorkauen:
> http://www.mrs-electronic.de/deutsch/kfz-elektroni...

Das wäre natürlich optimal. Ich schreibe denen mal ne Mail.

Wenn das aber nicht klappt. Wie muss ich vorgehen? Was sollte ich noch 
wissen bevor ich anfange?

von Lothar (Gast)


Lesenswert?

Von Olimex gibt es auch das: 
https://www.olimex.com/Products/ARM/NXP/LPC-P11C24

Einfach einen Stecker für den Drehzahlsensor drauf löten. 
Beispielprogramm für Sensorauswertung (z.B. SSI) und CAN-Ausgabe ist 
dabei.

CAN-Monitor für PC ist eigentlich nicht erforderlich, man kann die 
CAN-Messages parallel auch über RS232-Terminal auf dem PC ausgeben, auch 
das ist im Beispielprogramm.

von Pascal42 (Gast)


Lesenswert?

Hallo Lukas,
ich würde mit dem Sensorsignal auf einen "Input Capture" Eingang.
Bei jeder Flanke wird ein Interrupt ausgelöst und der Zeitstempel 
zwischengespeichert.
Im Interrupt musst Du jetzt nur die Zeitdifferenz zwischen dem aktuellen 
Zeitstempel und dem letzten bilden.
Besser noch, du zählst 100 Impulse und bildest die Differenz über 10 
oder 100. Dann wird die Aktualisierungsrate zwar etwas langsamer, dafür 
ist das Signal ruhiger.

CAN Senden ist nochmals etwas einfach als Empfangen.
Da würde ich mal das Web durchsuchen. Da gibt es genügend fertigen Code, 
den Du praktisch so verwenden kannst.

von Pascal42 (Gast)


Lesenswert?

>Beispielprogramm für Sensorauswertung (z.B. SSI) und CAN-Ausgabe ist dabei.
Dann würd ich das nehmen. Erspart Dir viel Ärger.

von m.n. (Gast)


Lesenswert?

Lukas Retber schrieb:
>> Wenn Dein Sensor einen Impuls/Umdrehung abgibt, muß Deine minimale
>> Drehzahl 6000U/min. betragen. Ist Dir das bewußt?
>
> Der Sensor wird etwa 100 Impulse/Umdrehung abgeben, da der Sensor ein
> Impulsrad abtastet. Pro Umdrehung also 100 Impulse.

Gut. Da der Sensor max. 3kHz verarbeiten kann, ist dann bei max. 
1800U/min. auch schon wieder Schluß.

Ein Beispiel für Drehzahlmessung für einen AVR findest Du hier 
Beitrag "einfache Drehzahlmessung mit ATmega88"
Für die Ausgabe über die ser. Schnittstelle hätte ich fertige Lösungen.
Ansonsten müssen die Daten noch auf den CAN-Bus gepackt werden. 
Vielleicht hilft's.

von Floh (Gast)


Lesenswert?

Lukas Retber schrieb:
> Nun suche ich einen möglichst fehlerunempfindlichen Schaltplan (EMV
> usw.) und ein einfaches Programm für den Controller.
> Ich selbst habe fast keine Erfahrung was das Schaltungslayout und die
> Programmierung betrifft. Hat jemand eventuell eine Schritt für Schritt
> Anleitung für eine ähnliche Problemstellung oder sogar fertige
> Schaltpläne oder Programme?

Du wirst hier wahrscheinlich keinen finden, der dir die komplette 
Projektarbeit abnimmt, dasist schließlich deine Aufgabe und du wirst 
dann auch benotet.

Geholfen wird hier gern, allerdings sollten vom Fragenden eigene 
Vorschläge und Ideen kommen und nicht ein einfaches "ich brauche 
fertig".

Daher mein Tip: Fang an.
Schaltplan erstellen:
Prozessor ist ja bereits ausgesucht, in den Datenblättern die 
Grundbeschaltung drumrum bauen, schauen, wie der CAN angebunden wird.
Dann benötigst du eine Spannungsversorgung, am einfachsten geht sowas 
mit einem Linearregler, die sind ziemlich unkritisch was EMV angeht.
Dann muss du dir überlegen, wie du den Sensor anschließt 
(Steckverbinder?).
Wenn du den grundsätzlichen Schaltplan hast, kann man sich über EMV 
Gedanken machen.
Dazu kannst du den Schaltplan auch hier im Forum posten, du wirst dich 
wundern wieviel Input du bekommst.

Danach kann man erst weitermachen.
Übrigends, wann hat die Projektarbeit begonnen?

von Alex (Gast)


Lesenswert?

Bologna lässt grüßen?

Würde mich interessieren in welchem Semester du bist und was du 
studierst.

Ja bei uns in der Firma werden auch fehlerunempfindliche Schaltpläne(!) 
gebraucht.
Dann kann die Fertigung ruhig mal Bauteile vertauschen - und die 
Elektronik funktioniert immer noch...

von Lukas R. (wu-shu)


Lesenswert?

Pascal42 schrieb:
> ich würde mit dem Sensorsignal auf einen "Input Capture" Eingang.
> Bei jeder Flanke wird ein Interrupt ausgelöst und der Zeitstempel
> zwischengespeichert...

Das hört sich interessant an. Das werde ich versuchen, wenn ich die 
Platine dann habe.

m.n. schrieb:
> Ein Beispiel für Drehzahlmessung für einen AVR findest Du hier
> Beitrag "einfache Drehzahlmessung mit ATmega88"

Das ist auf jeden Fall hilfreich. Ich habe hier noch einen ATmega8 
rumliegen und kann da vielleicht schon mal ein wenig herumprobieren, ob 
ich es hinbekomme eine Drehzahl berechnen zu lassen.

Floh schrieb:

> Du wirst hier wahrscheinlich keinen finden, der dir die komplette
> Projektarbeit abnimmt, dasist schließlich deine Aufgabe und du wirst
> dann auch benotet.

Die Arbeit hat bestimmt schon mal irgendjemand gemacht. Meine Frage war 
nur ob mir jemand sagen kann wo ich die finde. Für die Arbeit werde ich 
nicht benotet, das ist mehr ein freiwilliges Projekt. Mein benotetes 
Projekt läuft parallel und dafür wälze ich auch Bücher ;)

Floh schrieb:
> Daher mein Tip: Fang an.

Danke für den Tip. Ich war mir halt nicht sicher ob das so ne gute Idee 
ist eine eigene Platine mit CAN Kommunikation zu machen, da ich davon ja 
keine Ahnung habe. Die Aufgabe ist es eine Drehzahlauswertung zu machen 
und diese schnell genug auf den CAN zu senden, egal wie.

Alex schrieb:
> Würde mich interessieren in welchem Semester du bist und was du
> studierst.

Ich bin im dritten Semester und studiere Elektrotechnik. 
Schaltungslayout und Bussysteme und weitere interessante Lerninhalte 
habe ich noch vor mir. Bis jetzt hatten wir nur Grundlagen.

Ich mache demnächst mal einen Schaltplan in Eagle und lade den hier 
hoch. Mit der CAN Anbindung bin ich mir nicht sicher, ob ich da noch 
irgendwelche Schaltung dahinter brauche oder nicht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.