Relais über PIC und Taster schalten

OP #602925
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!
#602932
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...
OP #603004
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)
#603075
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
}
#603223
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.
OP #604231
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!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren