Hallo zusammen!
Gleich vorweg, die Frage ist bestimmt schon 1000* gestellt worden,
habe sie aber hier nicht gefunden.
Und! Ich bin nicht so ganz der Foren-Typ. (Probieren geht über ..)
Ich bin normalerweise in der analog Elektronik tätig, stehe aber im
Moment
vor dem Problem das ich die einzelnen Funktionen zur Veränderung einer
Kennline (je nach Temp.) nur unzureichend realisieren kann.
Erschwerend kommt noch hinzu daß das letztendliche Ausgangssignal
Impulsbreiten gesteuert ist.
Da ich mittelmäßig Kenntnisse in Basic und C habe, dachte ich mir das
dies vielleicht mit einem PIC realisierbar sein müßte.
Für einen Kunden verbauen wir den 16F676, ob der geht?
Bräuchte wahrscheinlich anal.-Eingänge für Fühler und Einstellregler.
Und der Hammer zum Schluß. Ich habe keinen Schimmer
wie ich jetzt anfangen soll!
Wie lauten die Befehle(Objekte) in den einzelnen Sprachen
zum Steuern der Ausgänge, in wie weit sind math. Algorythmen möglich?
Durchsuche das Internet schon lange, aber nichts gefunden.
Es muß doch möglich sein Information herzubekommen um auch von Null
sich das Wissen anzueignen.
Würde mich über Hilfe sehr freuen.
Danke! Schon im Vorraus
>Gleich vorweg, die Frage ist bestimmt schon 1000* gestellt worden,>habe sie aber hier nicht gefunden.
Stell die Frage doch mal anders.
>Ich bin normalerweise in der analog Elektronik tätig, stehe aber im>Moment>vor dem Problem das ich die einzelnen Funktionen zur Veränderung einer>Kennline (je nach Temp.) nur unzureichend realisieren kann.>Erschwerend kommt noch hinzu daß das letztendliche Ausgangssignal>Impulsbreiten gesteuert ist.
Ja, und?
>Da ich mittelmäßig Kenntnisse in Basic und C habe, dachte ich mir das>dies vielleicht mit einem PIC realisierbar sein müßte.
Kein Problem.
>Für einen Kunden verbauen wir den 16F676, ob der geht?
Ja.
>Bräuchte wahrscheinlich anal.-Eingänge für Fühler und Einstellregler.
Mach dich da erst mal schlau. Brauchst du oder brauchst du nicht.
>Und der Hammer zum Schluß. Ich habe keinen Schimmer>wie ich jetzt anfangen soll!
Ganz schlechte Vorbedingungen.
>Wie lauten die Befehle(Objekte) in den einzelnen Sprachen>zum Steuern der Ausgänge, in wie weit sind math. Algorythmen möglich?
Es gibt nicht DIE Befehle.
Darfst du alles schön selber programmieren.
>Durchsuche das Internet schon lange, aber nichts gefunden.
Kein Wunder.
>Es muß doch möglich sein Information herzubekommen um auch von Null>sich das Wissen anzueignen.
Lies das Datenblatt zum PIC. Da steht alles drin.
Programmieren musst du schon selber lernen.
Hallo, schau dir mal den Basic Stamp I an. Einfache Befehle, und auch
große Codebase, wo schon vieles realisiert wurde.
Wenn du interesse hast, kann ich dir einen gratis Compiler dafür
mailen, nur der Befehl "pulsin" fehlt.
Hallo,
das Problem hat jeder mal, es ist die Frage wie man damit umgeht. Ein
Tip zum strukturierten Arbeiten:
mache es wie bei einem Puzzle, erst den rand, dann den Inhalt. Alles was
du schon wissen könntes strukturiert aufschreiben.
Welche anteile sind analog
Welche könnten digital sein
Vor allem wieviele
Was genau soll alles gemacht werden
Wenns möglich ist, würde ich dir eher einen avr als einstiegpunkt
empfehlen. Vorteil: der Programmer ist günstiger, entwicklungsumgebung
ausgegohrener, und es gibt eine Hochsprache (C) dazu, welche von
Vorteil, bei einem Einstieg sein kann.
Gruß,
Hannes
Lt. Data schrieb:
> Für einen Kunden verbauen wir den 16F676, ob der geht?
Weiß ich nicht, ich nehme AVRs.
> Bräuchte wahrscheinlich anal.-Eingänge für Fühler und Einstellregler.
Du bräuchtest erstmal Wissen, was das Ding überhaupt machen soll, also
schreib es auf:
Was geht rein, welche Verarbeitung soll damit erfolgen, was geht raus.
> Und der Hammer zum Schluß. Ich habe keinen Schimmer> wie ich jetzt anfangen soll!
Am besten wie alle, mit den Grundlagen:
LED einschalten, LED blinken, Tasten entprellen, UART, LCD, ADC, PWM,
...
> Wie lauten die Befehle(Objekte) in den einzelnen Sprachen> zum Steuern der Ausgänge
Die Peripherie eines MC ist üblicher Weise im Datenblatt beschrieben.
Alles geschieht über Register, die man lesen oder setzen kann.
Die AVR-Datenblätter finde ich sehr gut aufgebaut, man kann schnell und
zielgenau die nötigen Register finden, welche Bits darin welche
Bedeutung haben.
> in wie weit sind math. Algorythmen möglich?
In C gibts die Grundrechenarten und mathematische Funktionen (math.h).
> Durchsuche das Internet schon lange, aber nichts gefunden.
Das ist merkwürdig.
Tutorials über MCs und die C-Sprache gibts doch zuhauf.
Gleich hier gibts z.B. ein AVR-Tutorial.
Peter
Wnn ihr schon PICs verbaut muss sich doch jemand damit auskennen?
Sprut.de ist eine gute Seite aber der arbeitet viel mit Assembler. Kommt
drauf an ob dir das liegt.
Ich weiß auch nicht, was soll denn an einem PIC nicht gehen?
Gut, die Architektur und der Instruktionssatz bei den älteren und
kleineren ist Hirnkrampf, da gibts günstigeres, auch preislich, aber das
war halt damals so eingerichtet.
Warum sollten die denn nicht gehen?
Sven P. schrieb:
> Ich weiß auch nicht, was soll denn an einem PIC nicht gehen?
Wie kommst Du darauf?
Das hat doch keiner behauptet.
Oder hast Du Dich im Thread geirrt?
Peter
Mein persönlicher Favorit ist der Proton-Compiler. picbasic.org ist da
die Adresse. Dort gibt es auch eine Demo Version mit glaube ich 40
Zeilen Basic Code und 4 PIC's zur Auswahl. Da war der 16F876 dabei. Der
Compiler unterstützt auch recht viel Mathematik. Versuch den doch mal.
Ports lassen sich einfach schalten: portb.1=1, portc.5=0 usw. Ausserdem
unterstützt der HW/SW-SPI, I2C, RS232 und SW-oneWire Bus.
Zur Zeit versuche ich mich außerdem an Bascom und den AVR's. Aber
bequemer finde ich die Arbeit mit PIC und Proton.
Gruß Meik
Einen Pic kannst du in basic programmieren (oder auch in C)
Assembler brauchst du in den seltensten fällen
Melabs oder Picbasic.org haben gute bis sehr compiler.
Demoversionen bis 50 Zeilen kann man runterladen. Die C development
suite gibts von microchip für lau.
Ein Programmiergerät von microchip kostet keine 50 Euro
Analog (10 bit Auflösung) kein Problem der Befehl lautet Adin Kanal,
Variable das war's.
Dein 16F676 hat 8 analoge eingänge, PWM gibt es in Software.
Der Rest ist machen und Datenblätter muß du immer erst lesen, dann
verstehen dann benutzen.
Danke für die schnellen Antworten!
Hier mal mein Vorhaben (wenigstens Gedanklich):
Habe 4 Einstellregler (-> 4 anal. Eingänge + 1x Temp-Fühler = 5)
Der Ausgang mein Impuls (Breiten gesteuert)
Regler 1 - 4 verändern die "Kurve" laut Zeichnung bzw.
R-1 den Punkt A
R-2 die ganze "Kurve"
R-3 den Punkt B
R-4 den Punkt B
Der Fühler selbst ist ein NTC und muß wahrscheinlich durch seine
krumme Kennlinie erst einmal linialiesiert werden.
Dürfte aber letztendlich kein Unterschied im Prg machen.
Wir verbauen den PIC zwar für einen Kunden aber mehr auch nicht.
Den Rest macht der Kunde alleine.
Das mit den Registern ist mir zwar logisch aber ich muß sie doch in
einem
Prg. mit einem Befehl ansprechen.
-> Werte auslesen, in Variable speichern, nach Formel berechnen,
Ergebnis dem Ausgang zuweisen.
Einen PIC zu programmieren kann doch nicht so Grundsätzlich verschieden
sein als ob ich ein Prg für den PC schreibe. Oder?
Wenn ich so darüber nachdenke kann man fast Angst kriegen. AHHH
@ Lt. Data
Die Sache ist so trivial nicht.
Auch deswegen, weil man die Anforderungen deiner Anwendung erst klarer
erarbeiten muss, um den geeigneten uC rauszusuchen.
Gerade die kleineren "PIC" sind äußerst gewöhnungsbedürftig um haben
z.T. eigenwillige Einschränkungen, beispielsweise wenn man Tabellen (NTC
Kennlinie) ablegen will.
Ohne jemand, der dich vorort profund unterstützen kann, wird das
entweder nichts oder jedenfalls nur in grösseren Zeit, da reden wird
eher von Monaten als von Wochen.
Ob das dann ein "PIC" oder ein anderer uC ist, wird sich zeigen.
Du brauchst jedenfalls jemanden, der schon funktionierende Entwicklungen
mit einem uC ähnlicher Funktionalität entwickelt hat. Das Forum hier ist
nicht ausreichend.
Einen PIC zu programmieren kann doch nicht so Grundsätzlich verschieden
sein als ob ich ein Prg für den PC schreibe. Oder?
Nur mal so ein Gedanke:
API - Docs sind die Axiome der PC- Programmierer.
Datenblätter sind die Axiome der µC - Programmierer.
In Hochsprache Basic oder C kann dir das ganze gefummel mit
Besonderheiten völlig wurscht sein.
Eine NTC Lookup table ist ein Array und kann mit Data Ntctable [] so wie
in jeder anderem Basic auch gespeichert werden und mit BitX = PortA.1
kannst du jeden blöden Port einlesen ob nun beim Pic oder AVR oder Mac
OS oder ZX81 sonstwas.
Was wo angeklemmt ist entscheidest du, die Hardware musst du halt
lernen.
Die Angst ist quatsch, fang einfach an. Hier wird aber eher Atmel AVR in
C supported.
Oh je!
Hätte schon Probleme jemand in meiner Umgebung zu finden der
ein abgeschossenes Windows wiederbeleben kann. Naja fast.
Die Entwicklung als Analog Gerät hat auch schon Monate gedauert, dann
kann ich doch jetzt nicht erwarten das ich das jetzt in wenigen Wochen
realisiere.
Nein. Hier geht es um eine echte Regelung von einer Wassertemperatur.
Ausenfühler anschliessen und Ausgang ergibt laut Regler eine gewünschte
Temperatur. Ach ja, und die Funktion von R-2 ist ein/aus schaltbar.
und was möchtest du jetzt ?
Schau ins Datenblatt da steht alles drin.
Der rest mußt du im Compiler lesen, welchen du benutzt.
Jeder ist anders.
Und dann kannst du los legen mit dem Programmieren.
Empfehle dir, fang mit einer LED an. Diese zum blinken
bringen. Da hast du genug zu tun.
Hallo LT. Data,
das mit der Regelung ist nicht direkt für den Einstieg
geeignet aber machbar.
Nur die Kurve verschieben ist dabei nicht der optimale
Ansatz, eine richtige Regelung sollte es schon sein.
Hier mal Regelungen, du siehst auch den Zusammenhang zu
den analogen Schaltungen:
http://www.rn-wissen.de/index.php/Regelungstechnik
Auch der Temperaturfühler ist mit einem µC leicht auszuwerten.
Da du nicht auf PIC festgelegt bist kannst du dir ja
erst einmal einen µC mit Hard- und Software aussuchen.
Hier wird Atmel und C bevorzugt, bei RoboterNetz
(http://www.rn-wissen.de/index.php/Hauptseite) etwas mehr Basic.
Es gibt auch Foren für PIC, H08 etc.
Dann stückweise starten also LED blinken, dann Temperaturmessung...
Dann ist auch der Regler machbar;)
avr
Warum legst du dich eigentlich so auf den NTC mit seiner besch...
Kennlinie fest? Ein DS18S20 liest die Temperatur von -55 bis +125 °C ein
und die ist mit wenigen Befehlszeilen im Basic Compiler eingelesen. Das
Ding kostst bei Pollin z.B. 2,50€
Meik
Hallo ,
ich muss ganz ehrlich sagen dass ich mit den Atmels nie so wirklich warm
geworden bin .
Ich nutze auch lieber die PICs und zum programmieren Flowcode V4.
Die Programmiersprachen sind mir alle zu komplex um ein paar einfache
Programme zu schreiben .
Dazu kommt nicht dass man die Syntax genau im Kopf haben muss, macht man
ein Zeichen falsch , geht gleich garnix mehr . Da ich nur ab und an mal
etwas einfaches steuern möchte , ist Flowcode eine wirklich gute
Alternative .
Mir ging es ähnlich als ich das erste Projekt mit einem Mikrocontroller
machen wollte. Keine Ahnung davon und vom Programmieren ebenfalls nur
sehr wenig .
Im Flowcode muss man einfach einen Programmablaufplan zeichnen und schon
hat man fast das fertige Programm .
Dass es nicht flexibel sei ist eine Lüge .
Man kann auch C-Code oder Assembler mit einbauen und es gibt viele
fertige Bibliotheken .
Natürlich muss man auch hier wissen was der µC kann und was nicht .
Als Entwicklungsumgebung hab ich mir die E-Blocks nachgebaut , natürlich
angepasst auf meine Projekte .
Wer nicht wirklich im Controller leben möchte und nur ab und an zum µC
greift , hat mit diesem Programm die meiner Meinung nach die beste
Alternative zum Rest .
Was auch gut zu beherrschen ist , ist der CCS Compiler für die PICs ,
wenn auch etwas teurer .
Allerdings muss man da natürlich C beherrschen .
servus,
wenn du so der analoge bist ,warum machst du das nicht mit op'v?
Bei deinem Vorhaben einen pic16f zu nehmen ,wäre da wohl "picbasic" oder
so was der kürzeste Weg zum erfolg. ich kann aber auch mplab empfehlen,
ist auch kostenlos!
Schön wenn man sieht wie viele einem helfen wollen. Danke!
Bin sicherlich nicht auf den PIC festgelegt, wäre nur schön wenn wir den
gleichen Typ wie unser Kunde nutzen könnten.
Das mit dem NTC geht leider nicht anderst der ist bereits verbaut.
Der Regler selbst ist wieder eine Neuauflage bzw. Neuentwicklung.
Die alten Pläne existieren nicht mehr so das wir ihn nicht nachbauen
können. Kennen also auch nur das was ich bereits genannt hatte.
Habe es bereits mit OP's versucht nur leider bekomme ich den Verlauf
laut Kennlinie nicht richtig hin.
Da z.B. mit dem Regler 1 & 4 sowohl der Start,- Endpunkt wie auch die
Verstärkung zu ändern sind. (Siehe neue Anlage)
Ich hatte mir schon einige Compiler runtergeladen.
mplab u. Pic-Basic sind auch dabei. Auch habe ich schon ein Programmer.
Brauche nur noch den Adapter für den Anschluß.
Nur eben die "Befehle" fehlen mir.
Denke aber die Idee mit einer LED ist nicht schlecht.
Dieses Beispiel ist bei den Compiler teilw. dabei.
Lies dir doch erst mal die Grundlagen zu den PICs bei sprut.de durch.
Die Beispiele sind zwar meist in Assembler aber das Verständnis zur
Arbeitsweise der PICs, Speicheraufbau, Bedeutung der Register, Timer,
ADC, Interupt etc. wird dort gut erklärt. Und wenn man das verstanden
hat, findet man auch schnell in die Programmierung rein. Du bist bei
einem µC sehr hardwarenah egal in welche Sprache du die programmierst.
Das Grundverständnis muss erst mal da sein. Eventuell kommst du ja auch
mit Assembler zurecht, dann kannst du dein Projekt ja in dieser Sprache
programmieren. 5 analoge Eingänge und PWM ist kein Hexenwerk, auch nicht
in Assembler. Du benötigst aber ein paar Wochen/Monate um dich da
einzuarbeiten.
Ein reines PIC-Forum wäre noch http://www.fernando-heitor.de
@Haku
>Gut, die Architektur und der Instruktionssatz bei den älteren und>kleineren ist Hirnkrampf, da gibts günstigeres, auch preislich, aber das>war halt damals so eingerichtet.
Der erste Teil ist weitgehend subjektiv, der Zweite schlicht falsch wenn
du dich nicht auf Stückzahlen beziehst. Richtig ist das Preis-Argument
nur bei Kleinstmengen.
so jetzt will ich doch mal den hilfebedürftigen ein wenig Mut machen.
so du nimmst den Pic und legst im mplab ein Projekt an.
Mit assembler ist das bestimmt gut zu schaffen sind ja nur 35 Befehle.
den internen Oszillator wählen und erst mal kein memoryprotect. das
alles geht bei mplab im letzten menupunkt.
und jetzt fängst du mit deinem Programm an.zb:
org(0)
goto _reset ;sprungbefehl
org(4 o. 8) ;das ist die inerruptadresse
bla bla
_reset:
movlw b'00110011' ;lade die zahl ins Arbeitsregister
movwf TRISA ;schreibe von arbeitsregister in
Portkonf.-Register
;in TRISA wird auf digital Ein. oder Ausgang
eingestellt.
und immer so weiter