Forum: Mikrocontroller und Digitale Elektronik Relais über PIC und Taster schalten


von Patrick D. (schweindl)


Lesenswert?

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!

von Master S. (snowman)


Lesenswert?

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...

von Patrick D. (schweindl)


Lesenswert?

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)

von Master S. (snowman)


Lesenswert?

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
}

von Der M. (steinadler)


Lesenswert?

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.

von Patrick D. (schweindl)


Lesenswert?

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!

von Master S. (snowman)


Lesenswert?

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
Noch kein Account? Hier anmelden.