Flipflop

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben
Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Flipflop

Beitrag von theo »

Linkat hat geschrieben:
So 2. Okt 2022, 09:17
@theo: Der Link im dritten Beitrag dieses Threads ist super. Danke
Danke, aber dieses PDF habe ich auch nur zufällig gefunden. Ich kann mir also nichts darauf einbilden. :wink:
Das Schöne dort ist, dass es wirklich für Anfänger oder "Eingerostete" gemacht ist.
Es wird nicht viel vorausgesetzt und man bekommt bei den Bauteilen auch immer nochmal erklärt, wo "hinten und vorne" ist (Kollektor, Basis, Emitter, Anode, Kathode...)
So etwas vergisst man schon mal, auch wenn man sich vor Jahren damit beschäftigt hat.

siro
Beiträge: 732
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: Flipflop

Beitrag von siro »

Kurze Korrektur:
470R + 47kR rund 5kR ????

Das sind 47470 Ohm, also 47,470K
6,7V/ 47470 = 141 Mikroampere.

Aber egal, ich sehe den Grund genauso.

Ich habe Leds die leuchten wirklich schon bei 20-50 Mikroampere, bei 1mA kann man nicht mehr reingucken so hell sind sie.
Früher waren die LEDs wirklich WESENTLICH schlechter...Da wurden diese Schaltungen auch noch mit Glühbirnen betrieben, da gabs das Problem nicht.. :wink:
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

siro
Beiträge: 732
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: Flipflop

Beitrag von siro »

Ich habe es grade mal simuliert:
Es fliessen tatsächlich 140 Mikroampere (0,14mA) durch die LED wenn sie nicht leuchten soll, da fühlt sich so manche LED schon richtig wohl....
FlipSim_01.jpg
FlipSim_01.jpg (49.51 KiB) 2441 mal betrachtet
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Flipflop

Beitrag von theo »

siro hat geschrieben:
So 2. Okt 2022, 13:34
Ich habe es grade mal simuliert:
Es fliessen tatsächlich 140 Mikroampere (0,14mA) durch die LED wenn sie nicht leuchten soll, da fühlt sich so manche LED schon richtig wohl....
Genau.
Bei dieser Schaltung leuchten die LED noch deutlich: Nicht richtig hell, aber unübersehbar.
Ich habe das dann mal separat gemessen mit Poti und sie hat immer noch ganz leicht geglimmt, in einem Strombereich, den ich nicht mehr richtig messen konnte.
Angezeigt < 10μA. (Ob die Messung stimmen kann, weiss ich nicht).

Deshalb 1.2k parallel zur den LEDs schalten damit Spannung abfällt und sie ganz ausgehen.

sstvmaster
Beiträge: 576
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: Flipflop

Beitrag von sstvmaster »

Hi theo,

Im Bild siehst du (Rot) wie es zu den 0,14mA kommt. Über die Basis-Emitter Strecke von Q1 fließt der Strom durch.
Dateianhänge
FlipSim_01_2.jpg
FlipSim_01_2.jpg (52.73 KiB) 2374 mal betrachtet
Zuletzt geändert von sstvmaster am Di 4. Okt 2022, 11:43, insgesamt 1-mal geändert.
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Flipflop

Beitrag von theo »

Danke.
Hmm, ist das dann noch ein Flip-Flop?
Oder verstehe ich dich falsch? R1 und R2 weg und Basis über 47k an Masse?

sstvmaster
Beiträge: 576
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: Flipflop

Beitrag von sstvmaster »

Ja theo du hast Recht, das wäre dann kein Flip-Flop mehr. :oops:

Die Widerstände müssen natürlich so bleiben wie sie sind. Sonst fließt ja kein Erhaltungsstrom mehr.

Habe meine Beitrag oben , geändert!
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

sstvmaster
Beiträge: 576
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: Flipflop

Beitrag von sstvmaster »

Hier gibt es einen Online Simulator: https://www.falstad.com/circuit/

Anbei die Schaltung zum importieren in den Simulator.

Die LED's habe hier einen If von 10mA, wenn ich den If auf zb. 2mA stelle,
dann glimmt jeweils eine LED noch. Das heißt für dich das du Low Current LED's in deiner
Schaltung hast.

Wenn du LED's brauchst kannst du dich gern bei mir melden. Habe noch verschiedene Farben und Formen
hier rumliegen.
Dateianhänge
circuit-20221004-1200.circuitjs.txt
(734 Bytes) 61-mal heruntergeladen
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

Benutzeravatar
six1
Beiträge: 788
Registriert: Do 1. Jul 2010, 19:01

Re: Flipflop

Beitrag von six1 »

Wenn du einen BC547C nimmst und 120K wird es ein wenig besser
Gruß, Michael

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Flipflop

Beitrag von theo »

@sstvmaster: Danke, das schaue ich mir an. Und danke für das Angebot mit den LED, habe aber momentan noch ausreichend davon.

@six1: Mein Problem ist eigentlich gelöst, durch die 1.2k parallel zur den LEDs. Damit sind die schön aus. :D

siro
Beiträge: 732
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: Flipflop

Beitrag von siro »

Genau Maik, der Strompfad ist da sehr gut zu sehen.

Ich erwähnte, dass meine LEDs schon bei 20... Mikroampere leuchten,
Hier mal ein Beispiel für die LEDs, die fangen sogar schon bei 10 Mikroampere an zu blinzeln:

https://dl.dropbox.com/s/og9pelznik8pkb ... G.mp4?dl=0

Das sind sogenannte Pointleds. Die sind aber glaube ich inzwischen leider abgekündigt

https://www.osram.com/ecat/LT%20P4SG/co ... ce_2190891
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

siro
Beiträge: 732
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: Flipflop

Beitrag von siro »

Für derartig komplexe Aufgaben, wie ein FlipFlop, nimmt ein richtiger Programmierer natürlich einen Microcontroller... :lol:
Ich hab das mal mit nem 6 Beinigen PIC gemacht. Leider kann ich den nur in C und Assembler programmieren.
FlipFlop_Steckbrett.jpg
FlipFlop_Steckbrett.jpg (50.41 KiB) 2315 mal betrachtet
Den Source Code möchte ich euch aber trotzdem nicht vorenthalten:

Code: Alles auswählen

/* 
  File:    main.c
  Date:    04.10.2022  
  Author:  Siro
  Project: FlipFlop
  Controller: Microchip PIC10F322 im SOT-23-6 Gehäuse
 */
 

// CONFIG
#pragma config FOSC = INTOSC    // Oscillator Selection bits (INTOSC oscillator: CLKIN function disabled)
#pragma config BOREN = OFF      // Brown-out Reset Enable (Brown-out Reset disabled)
#pragma config WDTE = OFF       // Watchdog Timer Enable (WDT disabled)
#pragma config PWRTE = ON       // Power-up Timer Enable bit (PWRT enabled)
#pragma config MCLRE = OFF      // MCLR Pin Function Select bit (MCLR pin function is digital input, MCLR internally tied to VDD)
#pragma config CP = OFF         // Code Protection bit (Program memory code protection is disabled)
#pragma config LVP = OFF        // Low-Voltage Programming Enable (High-voltage on MCLR/VPP must be used for programming)
#pragma config LPBOR = OFF      // Brown-out Reset Selection bits (BOR disabled)
#pragma config BORV = LO        // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)
#pragma config WRT = OFF        // Flash Memory Self-Write Protection (Write protection off)

#include <xc.h>   // die einzige Headerdatei die benötigt wird.

void Flip(void)
{
  LATA0=1;  // Ersten  Ausgang auf High 
  LATA1=0;  // Zweiten Ausgang auf Low
}

void Flop(void)
{
  LATA0=0;  // Ersten  Ausgang auf Low
  LATA1=1;  // Zweiten Ausgang auf High   
}

void main(void) 
{   
  OPTION_REG = 0x00;  // prescale to timer 0, 1:256, enable pullups
  WPUA   = 0x0C;      // Pullup on RA2 und RA3 einschalten
  ANSELA = 0;         // ADU abschalten und damit die Eingänge freigeben
  TRISA  = 0x0C;      // RA0 und RA1 auf Ausgang, RA2 und RA3 auf Eingang

  while (1) 
  { 
    if (!RA2) Flop();  // wenn erste Pin Low wird, dann Flop
    if (!RA3) Flip();  // wenn zweiter Pin Low Wird dann Flip

    // wenn beide Low, dann Ausflippen  :-)  beide LEDs leuchten bzw. (blinken abwechselnd mit 110 KHz)
  } 
}

Das müsste wohl auch mit einem ATtiny10 gehen, der hat auch 6 Beinchen.
Gibts da schon Pascal für ?
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Flipflop

Beitrag von af0815 »

:shock: Pfui siro, kein Pascal. Nicht genügend , setzen. :lol: :mrgreen:


Analog ist ok, aber Controller ohne Pascal. :oops:


Bitte soll nur nur ein Witzkommentar sein, nicht zu ernst nehmen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

siro
Beiträge: 732
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: Flipflop

Beitrag von siro »

@af0815:
Das war von meiner Seite aus auch ironisch gemeint. Alles gut,
Heutzutage braucht man ja nen 32 Bitter um eine LED blinken zu lassen. :mrgreen:

Ich hab grad nochmal geguckt wegen Pascal für PIC.
Da gibt es ein Projekt PicPas und das ist in Lazarus programmiert.
Muss ich mir mal angucken.

https://github.com/t-edson/PicPas
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

siro
Beiträge: 732
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: Flipflop

Beitrag von siro »

Da ich mich jetzt genug geschämt habe mit dem "C" Code :P :lol:
habe ich mal versucht die PicPas IDE zum laufen zu bringen.
Und nach einigen Merkwürdigkeiten läuft das jetzt sogar.

Was mich jedoch wundert:
Ich muss nach if Abfragen ein end; setzen, ohne jedoch ein Begin benutzt zu haben :shock:
Ist das ein spezieller Syntax von Früher oder so ? ich kann mich daran eigentlich nicht erinnern.

Hier der funktionierende Pascal Code für den PIC

Code: Alles auswählen

//////////////////////////////////////////////////////////
// Siro erstes PicPas Program für das FlipFlop 05.10.2022}
//////////////////////////////////////////////////////////
program NewProgram;
uses PIC10F322;
{$FREQUENCY 4MHZ}

{$CONFIG _FOSC_INTOSC, _BOREN_OFF,_WDTE_OFF, _PWRTE_ON,_MCLRE_OFF,_CP_OFF,_LVP_OFF,_LPBOR_OFF,_BORV_HI,_WRT_OFF}
  
procedure Flip;
begin
  LATA_LATA1:=0;
  LATA_LATA0:=1;  
end; 
  
procedure Flop;
begin
  LATA_LATA1:=1;
  LATA_LATA0:=0;  
end;   
  
begin
  OPTION_REG:=0;
  ANSELA:=0;
  WPUA:=$0C;
  TRISA:=$0C;
  while (true) do 
  begin
    if PORTA_RA2 = 0 then Flip; end;   // nanu, hier MUSS ein end hin
    if PORTA_RA3 = 0 then Flop; end;   // und hier auch ... ????
  end;  
end;

end.
Programmiert habe ich den PIC mit dem PicKit3 und der Software von Microchip MPLAB X IPE.

Leider ist die Anleitung für PicPas nur in Spanisch... :|
Weis jemand ob es da auch etwas Englisches oder Deutsches gibt.
Ich bin grad dabei die Spanische Anleitung ins Deutsche zu übersetzen, natürlich nur mit Deepl,
ich kann kein einziges Wort Spanisch.
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

Antworten