Hallo! Ich möchte mehrere Relais über mehrer Taster (oder auch Schalter, ist egal) schalten können. Warum dazu der PIC? Also für jedes Relais soll ein Taster vorhanden sein mit dem man das Relais ein oder aus schalten kann. Dann sollen noch zwei Taster da sein um die Relais zufällig schlaten zu lassen oder eben manuell. Die Zufallszeit sollte per Poti regelbar sein. Da ich nicht der große Programmierer bin möche ich um Hilfe für den Code bitten! (Hoffe ich bin mit meinem Problem hier im richtigen Forum...) Danke schonmal für jede Antwort!
1. >> Die Zufallszeit sollte per Poti regelbar sein also doch keine zufallszeit 2. >> Da ich nicht der große Programmierer dann löse es mit "analogen" bauteilen aus 1) und 2) ergibt für mich logischerweise, dass du das gescheiter nicht per uC lösen sollst/kannst. wenn es aber ein lernbeispiel sein soll, um in die uC-materie reinzukommen, helfen wir dir gerne bei problemen - aber hier wird dir niemand die schaltung und C-code für dich von null auf machen. erkläre doch, wo deine probleme liegen...
Dass mir keiner das Programm und die Schaltung machen wird ist klar! Ja, es soll ein lern/übungs/fun Projekt werden, aber ich habe noch nirgends etwas gefunden, dass mir wirklich weiter geholfen hätte... Das größe Problem ist, dass Poti auslesen und daraus eine Variable (-->Zeit) zu machen um dann die Ausgänge dementsprechend lang ein/aus zu schalten. Hab das in der Schule schon mal versucht, aber da konnte mir leider nichtmal der Prof. helfen... (kein Kommentar dazu... :-D) Und jetzt sind schon Ferien und ich möchte es nochmal versuchen. --> Ich bräuchte also Hilfe beim C-Code für die AD-Wandlung und der Wert sollte dann in eine Variable für die Zeit umgewandelt werden. (verwende einen PIC18F458)
kannste mal das angucken:
1 | #include <p18F458.h> |
2 | #include <adc.h> |
3 | |
4 | #pragma config OSC = HS
|
5 | #pragma config WDT = OFF
|
6 | #pragma config LVP = OFF
|
7 | |
8 | unsigned int iADCvalue; // 16bit |
9 | |
10 | void main (void) |
11 | {
|
12 | TRISA = 0xFF; // all input |
13 | TRISB = 0x00; // all output |
14 | TRISC = 0xFF; |
15 | TRISD = 0xFF; |
16 | TRISE = 0x0F; // all input - wenn 0xFF => copiliert nicht |
17 | |
18 | // ADC initialisieren
|
19 | OpenADC(ADC_FOSC_RC & |
20 | ADC_RIGHT_JUST & |
21 | ADC_1ANA_0REF, |
22 | ADC_CH0 & |
23 | ADC_INT_OFF); |
24 | |
25 | while (1) { |
26 | ConvertADC(); |
27 | while (BusyADC()); |
28 | iADCvalue = ReadADC(); |
29 | |
30 | // mach was mit iADCvalue
|
31 | |
32 | |
33 | }
|
34 | }
|
Also wenn du zweidrähtige Sensoren haben willst, würde ich dir zu der analogen Variante raten, also N/PTC. Hiervon gibt es auch lineare Sensoren, welche allerdings etwas teurer sind. Die Anzahl der messbaren Kanäle ist hierbei abhängig von der Anzahl der analogen Eingänge die dein Controller hat. So schlecht find ich das Projekt gar nicht, versuchs doch mal. Man kann nur dazulernen (besonders aus Fehlern). Mach aber erst nen Schaltplan und ein kleines Layout. Kannst dich auch gern per PM an mich wenden.
wow... Danke für die schnellen Antworten! Ein weiters Problem habe ich gefunden... Kann mir jemand beim C-Code für eine Zufallszahl zwischen 0 und 32 helfen? Dann muss ich nur noch die restlichen Bauteile für die Platine bestellen, sobald ich die hab werd ich den rest Programmieren und testen!
kannste auch dein schaltplan mal zuerst hier veröffentlichen und wir können dir sagen, was du besser abänderst - vielleicht brauchst dann ein paar bauteile mehr, vielleicht ein paar andere weniger ;) @Micha: ich verstehe dein posting im zusammenhang 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.