-
        

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 21

Thema: Spannungssteuerung

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.01.2006
    Ort
    Erlangen
    Alter
    32
    Beiträge
    210

    Spannungssteuerung

    Anzeige

    Habe hier schon gesucht, aber leider nichts passendes gefunden

    Bin blutiger Anfänger im Bascom-Gebiet und benötige etwas Hilfe. Ich bin dabei mir eine Steuerung mit einem Tiny 15L zu löten, mit der man per Tastendruck eine Spannung erhöhen, bzw. verringern kann. Bin im Code bis jetzt so weit, dass ich die Pins definiert habe

    Nun meine Frage(n): Wie setzte fest, dass die Ausgangsspannung beim einschalten der Schaltung auf 7V ist? Muss ich das per Subtrahieren machen? Also im Controller einspeichern, dass 12 das Höchste ist und 0 das Niedrigste? Und dementsprechend am Anfang sagen "start=12-5"? Oder macht man sowas anders?

    Und sage ich dem Controller auch so, dass er bei Tastendruck die Spannung erhöhen/verringer soll? Also ca. so:

    If
    Tasterhoch = 0 Then
    current + 1
    Else
    current


    ?

    Oder gibt es da eine einfachere Variante?

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Ich blicke zwar nicht ganz wie du da Arbeitest aber für die Tasten gibt es Debounce um ein Prellen zu verhindern.
    Schau dir es mal an.


    Mit "Config Debounce = 30" legst du fest wie lange der Taster geprüft wird.(in ms)
    Die Sollte länger sein als die Prellzeit die der Hersteller vorgibt.


    Mit "Debounce Pind.0 , 0 , Pr" springt das Program nach zum Label "PR" wenn der Port D.0 Low ist.

    Schreibste noch ein Sub dahinter dann gilt es als Gosub.

    In der Unterroutine steht dann eben current=Current+1 oder so und die If-Then Abfragen um ein verlassen des erlaubten Bereiches zu verhindern.


    Bei dieser Methode ist aber sicherzustellen das die Tasten oft genug abgefragt weden. um Reaktionszeiten zu bekommen.
    is bei deinem Programm aber nicht kritisch.





    Für den Start legste einfach am anfang des Programms vor der Hauptschleife einfach mit "Current = irgendwas " den Startwert fest.

    Is der Rechner Stromlos dann beginnt er ja beim nächsten Einschalten wieder am Anfang.
    Gruß
    Ratber

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Mal ne Zwischenfrage.

    bleibt das bei den 12V/0.3A oder soll da später auch noch was größeres drann kommen ?

    Wenn du bei Lüftern mit max ca. 0.5A Nennstrom bleibst dann reicht statt Mosfet auch nen einfachen BD135 oder ähnliches mit nem Fetzen Blech als Kühlkörper (Nen Aufsteckkühler kostet 20 Cent)
    Gruß
    Ratber

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.01.2006
    Ort
    Erlangen
    Alter
    32
    Beiträge
    210
    Zitat Zitat von Ratber
    Ich blicke zwar nicht ganz wie du da Arbeitest aber für die Tasten gibt es Debounce um ein Prellen zu verhindern.

    Für den Start legste einfach am anfang des Programms vor der Hauptschleife einfach mit "Current = irgendwas " den Startwert fest.

    Is der Rechner Stromlos dann beginnt er ja beim nächsten Einschalten wieder am Anfang.
    Habe mir im Wiki den Artikel über Bascom durchgelesen und einen Teil gefunden, wo auf Tasterdruck eine LED leuchtet. Dort wird auch kein Debounce benutzt. Liegt das daran, da es ja eine wesentlich einfachere "Aufgabe" ist (im Endeffekt einfach nur An/Aus)?

    Genau das ist mein Problem: ich kann ja schlecht sagen current (heisst das überhaupt so?) = 7V. Wie kann man die Spannung in eine vom Chip verarbeitbare Zahl umwandeln?
    Wie man dann weiter macht, weiss ich ja theoretisch (hoffe ich zumindest ):

    If ...... then
    spannungneu1 = spannungcurr + 1 (1 steht für die umgerechnete Spannung)
    else
    spannungcurr

    If ...... then
    spannungneu2 = spannungcurr - 1 (1 steht für die umgerechnete Spannung)
    else
    spannungcurr

    if ..... then
    spannungneu3 = 1 (kann man in dem fall einfach 1 schreiben, dass es als "high" gilt und so die komplette Spannung durchgelassen wird?)
    else
    spannungcurr

    if ..... then
    spannungneu4 = 0 (kann man in dem fall einfach 0 schreiben, dass es als "low" gilt und so die nichts durchgelassen wird?)
    else
    spannungcurr


    €: Ja, das bleicht bei den 12V/~0,3A. Aber die Sachen von Reichelt sind bereits da und es ist auch der Mosfet dabei

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Yo,Mosfet ist natürlich auch ok bzw. besser.
    War nur nen Gedankengang.


    Zu Debouncet:

    Das im Beispielcode im Wiki kein Debounce oder ein Equivalent genommen wird liegt daran das es dort nicht nötig ist.
    Die Led geht dort an sobald der Pegel an dem Port mit dem Taster wechselt.


    In dienemBeispiel willst du Tastendrücke zählen und wenn das programm schnell reagiert dann kann es sein das ein Tastenprellen doppelt gezählt wird.


    Ein einfaches Programm zeigt wie fix das geht.(Nur das wesentliche und übersichtlich zum Verständnis)

    Do
    Locate 1,1
    LCD X
    If Pind.0 = 0 then Gosub Taste
    Loop

    :Taste
    x = x +1
    If pind.0 = 0 then Goto Taste
    Return

    Die vorletzte Zeile soll warten bis die Taste wieder losgelassen wird.
    Prellt die Taste dann wird uu. 2-3x gezählt obwohl nur einmal gedrückt wurde.







    Was den Rest angeht :

    Ich habe jetzt wenig übersicht bei deinen Codeschnipseln um wirklich durchzusteihen was du machst.

    Ein Tip da du auch lange Namen nutzt.

    Zeilenlabels und Variablennamen können zwar fast beliebig lang sein aber nur die ersten 32 Zeichen werden ausgewertet.

    zb.
    "Spannungcurr1fuerneunenwertinunterprogram1"
    und
    "Spannungcurr1fuerneunenwertinunterprogram2"
    werden vom Compiler beide als
    "Spannungcurr1fuerneunenwertinunt "
    gewertet.
    Im Zweifelsfalle hilft es bei vielen langen Variablennamen eine eindeutige durchlafende Nummer an den anfang der Variablen zu legen.
    zb.

    01Eingang
    02Ausgang
    03Merker
    04Blabla1
    05blabla2
    06Spannungcurr1fuerneunenwertinunterprogram1
    07Spannungcurr1fuerneunenwertinunterprogram2
    usw.

    Wie gesagt,ist nur nen Vorschlag.
    Jeder hat seinen eigenen stil oder entwickelt ihn sich noch.

    Ansonsten:

    Ich weiß das es verwirrend ist eine neue Sprachen zu lernen also keine Panik.
    Das gibt sich mit der Zeit.
    Gruß
    Ratber

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.01.2006
    Ort
    Erlangen
    Alter
    32
    Beiträge
    210
    OK, dann einmal ganz ohne den Halb-Code
    Ich habe das Problem, dass ich nicht weiss, wie ich die Spannungsänderung, die durch die Tasterbetätigung gemacht wird dem Chip "beibringen" soll. Ich kann ja schlecht schreiben "-1V" bzw. "+1V". Genauso ist mir unklar, wie ich dem Chip sagen soll, dass er mit 7V "starten" soll.

    Ich hoffe du weisst nun was mein Problem ist

    €: Achja, meine Reicheltsachen sind heute gekommen, ist das normal, dass der Attiny15L ein SMD Baustein ist? Habe den So8 bestellt, der sah im Datenblatt irgendwie aus wie ein Chip für solche Sockelbrücken (so zum reinstecken als normale Bauform und nicht SMD)

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.02.2005
    Ort
    NRW-Bergisches Land
    Beiträge
    311
    Ich bin nicht ganz im Thema aber die Bezeichnung SO8 steht für ein SMD Gehäuse. Ein "Normales" Gehäuse werden mit DIL oder DIP bezeichnet. Die Atmel AVRs haben in der DIL Ausführung ein P in der Bezeichnung (ATINY15L-1PI).
    Beim ATTINY15L-1SC deutet das S auf ein SOP also SMD Ausführung.
    Gruß RePi!


    *** Holzhacken ist deshalb so beliebt, weil man bei dieser Tätigkeit den Erfolg sofort sieht. ***
    *** (Albert Einstein) ***

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.01.2006
    Ort
    Erlangen
    Alter
    32
    Beiträge
    210
    Verdammt, dann habe ich genau den falschen bestellt Egal, dann geht's halt morgen zum Elektrogeschäft bei uns in der Stadt...

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Yo,hast den falschen bestellt.

    Is aber auch nicht wild.

    Wenne den auf Dil haben willst dann löt ihm dünnen Kupferdraht an die Beinchen und schnall ihn auf ne IS Fassung (Verlöten)



    OK, dann einmal ganz ohne den Halb-Code Zwinkern
    Ich habe das Problem, dass ich nicht weiss, wie ich die Spannungsänderung, die durch die Tasterbetätigung gemacht wird dem Chip "beibringen" soll. Ich kann ja schlecht schreiben "-1V" bzw. "+1V". Genauso ist mir unklar, wie ich dem Chip sagen soll, dass er mit 7V "starten" soll.

    Ich hoffe du weisst nun was mein Problem ist Zwinkern

    Yp,ich weiß schon was du meinst.

    Das kannste nur durch probieren rausbekommen.
    Lass erstmal die RC-Kombi zwischen Controller und Transistor weg und betreib den Lüfter im reinen PWM-Modus.
    Pfeifft eventuell einwenig aber soll jetzt nicht jucken.

    Den Prescaler für die PWM hoch wählen so das du eine niedrige PWM-Frequenz bekommst (Kann man gut höhren).
    Das vertragen die allermeisten Lüfter.

    Dann läst du die PWM langsam hochlaufen bzw. testest verschiedene Werte und merkst dir ab wann der Lüfter sicher läuft.
    Gib 5% zu dann passt es.


    Bei reiner PWM kannst du 0-255 mit 0-100% mit 0-12V gleichsetzen.
    Gruß
    Ratber

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.01.2006
    Ort
    Erlangen
    Alter
    32
    Beiträge
    210
    Der letzte Satz war, auf den ich gewartet habe Nun weiss ich, wo ich mich orientieren muss!

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •