
- Details
- Kategorie: Texte für die Seite
- Zugriffe: 13007
- Erstellelt mit DuinoEDU Experimentelle 0. 70.15
- Wasserpumpen Steuerung
- Erstellelt mit DuinoEDU Experimentelle 0. 70.15
- Zielscheibenschießen
- Erstellelt mit DuinoEDU Experimentelle 0. 70.15
- real time clock
- Erstellelt mit DuinoEDU Experimentelle 0. 70.15
- LCD menü
- Erstellelt mit DuinoEDU Experimentelle 0. 70.15
- Wecker mit RTC
- Erstellt mit Arduino Basics 2019-11-20
- Besucherzähler
- Erstellt mit Arduino letsgoING 2
- Servostellung über Poti speichern
- Erstellt mit Arduino letsgoING 2
- Zufällige LED anschalten und mit Taster resetten
- Erstellelt mit DuinoEDU Experimentelle 0. 70.15
- Rolladensteuerung mit LDR
- Erstellelt mit DuinoEDU Experimentelle 0. 70.15
- DMX Lichtsteuerung zum DMX Kanäle testen
- Erstellelt mit DuinoEDU Experimentelle 0. 70.15 inklusive Corel Draw Datei das Mischpult aus Holz
- DMX Lichtsteuerung für DMX Mischpult für 4 PAR LED Strahler
- Erstellelt mit Arduino-Basics + Arduino IDE Datei
- DMX Lichtmischpult für 4 PAR LED Strahler und 2 Moving Head
- Erstellt mit Arduino Basic
- Init in Float (Dezimalvariable) ändern und mehr als 2 Stellen nach dem Komma Anzeigen
- Details
- Kategorie: Texte für die Seite
- Zugriffe: 5722
Hier ein Paar Bilder zum Fischertechnik SPS Trainingsmodell einer Anlage die Schokolinsen nach Farbe sortiert.
Weiterlesen: SPS Training mit Fischertechnik, Trainingsmodell Farbsortierung

- Details
- Kategorie: Texte für die Seite
- Zugriffe: 26787
Diese Seite ist Teil von meinen SPS Trainingsmodellen. Hier finden sich nur die Bilder vom Trainingsmodell der Lüftungsanlage.
Hier geht es zum YouTube Video vom dem Modell.


- Details
- Kategorie: Texte für die Seite
- Zugriffe: 19409
Bilder zur Seite https://www.kreativekiste.de/sps-training-trainingsmodelle-download
- Details
- Kategorie: Texte für die Seite
- Zugriffe: 21345
#include (servo.h) --> die beiden Klammen durch Eckige Klammern ersetzen!!!
int taster = 0 ;
int zaeler = 0 ;
int faktor = 0 ;
Servo servo_pin_11;
int a;
void Unterprogramm();
void setup()
{
pinMode( 2 , INPUT);
servo_pin_11.attach(11);
Serial.begin(9600);
pinMode( 4 , OUTPUT);
pinMode( 3 , OUTPUT);
taster = 0 ;
zaeler = 0 ;
faktor = 3 ;
servo_pin_11.write( zaeler );
delay( 1000 );
servo_pin_11.detach();
Serial.print("bereit");
Serial.println();
}
void loop()
{
if (( digitalRead(2) && ( ( taster ) == ( 0 ) ) ))
{
Serial.print("taster links gedrueckt");
Serial.println();
servo_pin_11.attach(11);
digitalWrite( 4 , HIGH );
for (a=1; a<= ( 180 ); ++a )
{
servo_pin_11.write( zaeler );
zaeler = ( zaeler + 1 ) ;
delay( 10 );
Unterprogramm();
Serial.print(zaeler);
Serial.println();
}
digitalWrite( 3 , LOW );
digitalWrite( 4 , LOW );
servo_pin_11.detach();
taster = 1 ;
zaeler = 180 ;
Serial.print("ende");
Serial.println();
}
if (( digitalRead(2) && ( ( taster ) == ( 1 ) ) ))
{
Serial.print("taster rechts gedrueckt");
Serial.println();
servo_pin_11.attach(11);
digitalWrite( 4 , HIGH );
for (a=1; a<= ( 180 ); ++a )
{
servo_pin_11.write( zaeler );
zaeler = ( zaeler - 1 ) ;
delay( 10 );
Unterprogramm();
Serial.print(zaeler);
Serial.println();
}
digitalWrite( 3 , LOW );
digitalWrite( 4 , LOW );
servo_pin_11.detach();
taster = 0 ;
zaeler = 0 ;
Serial.print("ende");
Serial.println();
}
}
void Unterprogramm()
{
if (( ( zaeler ) == ( ( 10 * faktor ) ) ))
{
digitalWrite( 3 , HIGH );
digitalWrite( 4 , LOW );
}
if (( ( zaeler ) == ( ( 20 * faktor ) ) ))
{
digitalWrite( 4 , HIGH );
digitalWrite( 3 , LOW );
}
if (( ( zaeler ) == ( ( 30 * faktor ) ) ))
{
digitalWrite( 3 , HIGH );
digitalWrite( 4 , LOW );
}
if (( ( zaeler ) == ( ( 40 * faktor ) ) ))
{
digitalWrite( 4 , HIGH );
digitalWrite( 3 , LOW );
}
if (( ( zaeler ) == ( ( 50 * faktor ) ) ))
{
digitalWrite( 3 , HIGH );
digitalWrite( 4 , LOW );
}
if (( ( zaeler ) == ( ( 60 * faktor ) ) ))
{
digitalWrite( 4 , HIGH );
digitalWrite( 3 , LOW );
}
if (( ( zaeler ) == ( ( 70 * faktor ) ) ))
{
digitalWrite( 3 , HIGH );
digitalWrite( 4 , LOW );
}
if (( ( zaeler ) == ( ( 80 * faktor ) ) ))
{
digitalWrite( 4 , HIGH );
digitalWrite( 3 , LOW );
}
if (( ( zaeler ) == ( ( 90 * faktor ) ) ))
{
digitalWrite( 3 , HIGH );
digitalWrite( 4 , LOW );
}
if (( ( zaeler ) == ( ( 100 * faktor ) ) ))
{
digitalWrite( 4 , HIGH );
digitalWrite( 3 , LOW );
}
if (( ( zaeler ) == ( ( 110 * faktor ) ) ))
{
digitalWrite( 3 , HIGH );
digitalWrite( 4 , LOW );
}
if (( ( zaeler ) == ( ( 120 * faktor ) ) ))
{
digitalWrite( 4 , HIGH );
digitalWrite( 3 , LOW );
}
if (( ( zaeler ) == ( ( 130 * faktor ) ) ))
{
digitalWrite( 3 , HIGH );
digitalWrite( 4 , LOW );
}
if (( ( zaeler ) == ( ( 140 * faktor ) ) ))
{
digitalWrite( 4 , HIGH );
digitalWrite( 3 , LOW );
}
if (( ( zaeler ) == ( ( 150 * faktor ) ) ))
{
digitalWrite( 3 , HIGH );
digitalWrite( 4 , LOW );
}
if (( ( zaeler ) == ( ( 160 * faktor ) ) ))
{
digitalWrite( 4 , HIGH );
digitalWrite( 3 , LOW );
}
if (( ( zaeler ) == ( ( 170 * faktor ) ) ))
{
digitalWrite( 3 , HIGH );
digitalWrite( 4 , LOW );
}
if (( ( zaeler ) == ( ( 180 * faktor ) ) ))
{
digitalWrite( 4 , HIGH );
digitalWrite( 3 , LOW );
}
}
- Details
- Kategorie: Texte für die Seite
- Zugriffe: 13960
Systematisierung von Schriftfeldvorlagen und automatische Nummerierung von Elementen, Leitern und Folien.
Variablen werden verwendet, um den Inhalt von Textfeldern und Eigenschaften aus Elementen, Folien und Leitern zu definieren. Abhängig von den Bedingungen während der Erstellung des Objekts (Folie, Element, Leiter usw.) wird die Variable des Text- oder Eigenschaftsfelds durch einen anderen Wert ersetzt.
Eine Eigenschaft ist eine Zeichenfolge, die mit dem Symbol % beginnt . Die von QElectrTech bereitgestellten Standardvariablen findet ihr hier.
% {projecttitle}: Project title
% {projectpath}: Project path
% {projectfilename}: Project file name
% {saveddate}: File saving date
% {filename}: Project file name
% {savedfilename}: Registered file name
% {savedfilepath}: Saved file path
% {savedtime}: File saving time
% {folio-total}: Total number of folios in the project
% {version}: Software version
% {machine}: Project functional group name
Die folgenden Variablen sind spezifische Variablen für jede Folie. Sie können zum Erstellen von Schriftfeldvorlagen verwendet werden.
% {folio-id}: Folio position in the project
% {title}: Folio title
% {author}: Folio author
% {date}: Folio date
% {folio}: Folio information (Label)
% {indexrev}: Folio revision index
% {locmach}: Name of the location in the project functional group
% {previous-folio-num}: Number previous folio
% {next-folio-num}: Number next folio
variables related to element
Die folgenden Variablen sind spezifische Variablen für jedes Element. Sie können verwendet werden, um automatische Nummerierungsmuster zu erstellen.
% {F}: Label from the folio where the element can be found
% {f}: Number from the folio where the element can be found
% {M}: Plant variable from the folio where the element can be found
% {LM}: Location variable of the folio where the element can be found
% {l}: Folio line number from the workspace where the element can be found
% {c}: Folio column number from the workspace where the element can be found
% {id}: Folio position in the project (Schema number)
variables related to conductor
Die folgenden Variablen sind spezifische Variablen für jeden Leiter (Leitung, Verbidung). Sie können verwendet werden, um automatische Nummerierungsmuster zu erstellen.
% {F}: Label from the folio where the conductor can be found
% {f}: Number from the folio where the conductor can be found
% {M}: Plant variable from the folio where the conductor can be found
% {LM}: Location variable of the folio where the conductor can be found
% {l}: Folio line number from the workspace where the conductor can be found
% {c}: Folio column number from the workspace where the conductor can be found
% {id}: Folio position in the project (Schema number)
- Details
- Kategorie: Texte für die Seite
- Zugriffe: 22972
Hier gibt es das kurze Beispiel aus dem YouTube Video zum Download.
Rechtsklick speichern unter --> zip Datei mit der ProfiCAD Vorlage und PDF Datei.
- Details
- Kategorie: Texte für die Seite
- Zugriffe: 25544
Bild zum Youtube Video:
- Details
- Kategorie: Texte für die Seite
- Zugriffe: 50498
Datenschutz (letzte Änderung der Seite 04.02.2020)
1. Datenschutz auf einen Blick
Die Betreiber dieser Seiten nehmen den Schutz Ihrer persönlichen Daten sehr ernst. Wir behandeln Ihre personenbezogenen Daten vertraulich und entsprechend der gesetzlichen Datenschutzvorschriften sowie dieser Datenschutzerklärung.
Diese Seite verwendet aus diesem Grund so weit möglich keine personenbezogenen Daten. In das Kontaktformular muss nur eine E-Mail Adresse eingegeben werden, selbst der Name ist kein Pflichtfeld, es gibt keinen Newsletter in den sie sich eintragen können, es gibt keine social Media Buttons und es gibt keine Möglichkeit Kommentare zu hinterlassen.
Aus diesem Grund werden auch alle E-Mails die an unten stehende, im Impressum stehende oder die über das Kontaktformular empfangen werden unmittelbar nach dem beantworten in meinem e-mail Account gelöscht.
Das gleiche gilt für eine Kontaktaufnahme über Telegram, auch hier wird die Konversation nach der Beantwortung auf meinem Handy gelöscht. Zudem werde ich den Kontakt nicht in meinem Telefonbuch speichern. Außerdem dürfen keine Daten wie Name, E-Mail oder Adresse über Telegram zu mir gesendet werden. Es sollte immer ein Geheimer Chat gewählt werden.
Ausnahmen für Bestellung im Shop
Bei der Bestellung werden nur Daten abgefragt die für die Bestellung und vor allem für den späteren Versand nötig sind. Nach Versand der Schaltung wird die Rechnung zur Dokumentation und für die Steuererklärung ausgedruckt, abgeheftet, sicher aufbewahrt und nach 5 Jahren vernichtet. Der gesamte E-Mail verkehr wird aus meinem Account gelöscht und alle PDF Dokumente auf dem PC werden gelöscht.
Allgemeine Hinweise
Die folgenden Hinweise geben einen einfachen Überblick darüber, was mit Ihren personenbezogenen Daten passiert, wenn Sie unsere Website besuchen. Personenbezogene Daten sind alle Daten, mit denen Sie persönlich identifiziert werden können. Ausführliche Informationen zum Thema Datenschutz entnehmen Sie unserer unter diesem Text aufgeführten Datenschutzerklärung. Datenerfassung auf unserer Website Wer ist verantwortlich für die Datenerfassung auf dieser Website? Die Datenverarbeitung auf dieser Website erfolgt durch den Websitebetreiber. Dessen Kontaktdaten können Sie dem Impressum dieser Website entnehmen.
Wie erfassen wir Ihre Daten?
Ihre Daten werden zum einen dadurch erhoben, da Sie uns diese selber mitteilen.
Andere Daten werden automatisch beim Besuch der Website durch unsere IT-Systeme erfasst. Das sind vor allem technische Daten (z. B. Internetbrowser, Betriebssystem oder Uhrzeit des Seitenaufrufs). Die Erfassung dieser Daten erfolgt automatisch, sobald Sie unsere Website betreten. Wofür nutzen wir Ihre Daten?
Ein Teil der Daten wird erhoben, um eine fehlerfreie Bereitstellung der Website zu gewährleisten. Andere Daten können zur Analyse Ihres Nutzerverhaltens verwendet werden.
Welche Rechte haben Sie bezüglich Ihrer Daten?
Sie haben jederzeit das Recht unentgeltlich Auskunft über Herkunft, Empfänger und Zweck Ihrer gespeicherten personenbezogenen Daten zu erhalten. Sie haben außerdem ein Recht, die Berichtigung, Sperrung oder Löschung dieser Daten zu verlangen. Hierzu sowie zu weiteren Fragen zum Thema Datenschutz können Sie sich jederzeit unter der im Impressum angegebenen Adresse an uns wenden. Des Weiteren steht Ihnen ein Beschwerderecht bei der zuständigen Aufsichtsbehörde zu. Außerdem haben Sie das Recht, unter bestimmten Umständen die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen. Details hierzu entnehmen Sie der Datenschutzerklärung unter „Recht auf Einschränkung der Verarbeitung“.
Tools von Drittanbietern
Datenschutzerklärung für die Verwendung von Google AdSense
Diese Website verwendet Google AdSense. Es handelt sich hierbei um einen Dienst der Google Inc., 1600 Amphitheatre Parkway, Mountain View, CA 94043, USA, zur Einbindung von Werbeanzeigen. Google AdSense verwendet Cookies. Dies sind Dateien, durch deren Speicherung auf Ihrem PC Google die Daten Ihrer Benutzung unserer Website analysieren kann. Zudem werden bei Google AdSense zusätzlich Web Beacons verwendet, nicht sichtbare Grafiken, die es Google ermöglichen, Klicks auf dieser Website, den Verkehr auf dieser und ähnliche Informationen zu analysieren.
Die über Cookies und Web Beacons erhaltenen Informationen, Ihre IP-Adresse sowie die Auslieferung von Werbeformaten werden an einen Server von Google mit Standort in den USA übermittelt und dort gespeichert. Google wird diese gesammelten Informationen möglicherweise an Dritte weitergeben, wenn dies gesetzlich erforderlich ist oder Google gegenüber Dritten die Datenverarbeitung in Auftrag gibt. Allerdings wird Google Ihre IP-Adresse zusammen mit den anderen gespeicherten Daten zusammenführen.
Durch entsprechende Einstellungen an Ihrem Internetbrowser können Sie verhindern, dass die genannten Cookies auf Ihrem PC gespeichert werden. Dadurch besteht jedoch die Möglichkeit, dass die Inhalte dieser Website nicht mehr in gleichem Umfang genutzt werden können. Durch die Nutzung dieser Website willigen Sie in die Bearbeitung der zu Ihrer Person erhobenen Daten durch Google in der zuvor beschriebenen Art und Weise und zu dem zuvor benannten Zweck ein.
Nutzer können die Installation der Cookies von Google AdSense auf verschiedene Weise verhindern:
a) durch eine entsprechende Einstellung der Browser-Software;
b) durch Deaktivierung der interessenbezogenen Anzeigen bei Google;
c) durch Deaktivierung der interessenbezogenen Anzeigen der Anbieter, die Teil der Selbstregulierungs-Kampagne „About Ads“ sind;
d) durch dauerhafte Deaktivierung durch ein Browser-Plug-in.
Die Einstellungen unter b) und c) werden gelöscht, wenn Cookies in den Browsereinstellungen gelöscht werden.
3. Nähere Informationen zu Datenschutz und Cookies für Werbung bei Google AdSense sind in der Datenschutzerklärung von Google, insbesondere unter den folgenden Links zu finden:
http://www.google.de/policies/privacy/partners/
http://www.google.de/intl/de/policies/technologies/ads
http://support.google.com/adsense/answer/2839090
Beim Besuch unserer Website kann Ihr Surf-Verhalten statistisch ausgewertet werden. Das geschieht vor allem mit Cookies und mit sogenannten Analyseprogrammen. Die Analyse Ihres Surf-Verhaltens erfolgt in der Regel anonym; das Surf-Verhalten kann nicht zu Ihnen zurückverfolgt werden. Sie können dieser Analyse widersprechen oder sie durch die Nichtbenutzung bestimmter Tools verhindern. Detaillierte Informationen zu diesen Tools und über Ihre Widerspruchsmöglichkeiten finden Sie in der
folgenden Datenschutzerklärung.
2. Allgemeine Hinweise und Pflichtinformationen
Datenschutz
Die Betreiber dieser Seiten nehmen den Schutz Ihrer persönlichen Daten sehr ernst. Wir behandeln Ihre personenbezogenen Daten vertraulich und entsprechend der gesetzlichen Datenschutzvorschriften sowie dieser Datenschutzerklärung. Wenn Sie diese Website benutzen, werden verschiedene personenbezogene Daten erhoben. Personenbezogene Daten sind Daten, mit denen Sie persönlich identifiziert werden können. Die vorliegende Datenschutzerklärung erläutert, welche Daten wir erheben und wofür wir sie nutzen. Sie erläutert auch, wie und zu welchem Zweck das geschieht. Wir weisen darauf hin, dass die Datenübertragung im Internet (z. B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich.
Hinweis zur verantwortlichen Stelle
Die verantwortliche Stelle für die Datenverarbeitung auf dieser Website ist:Verantwortliche Stelle ist die natürliche oder juristische Person, die allein oder gemeinsam mit anderen über die Zwecke und Mittel der Verarbeitung von personenbezogenen Daten (z. B. Namen, E-Mail-Adressen o. Ä.) entscheidet.
Widerruf Ihrer Einwilligung zur Datenverarbeitung
Viele Datenverarbeitungsvorgänge sind nur mit Ihrer ausdrücklichen Einwilligung möglich. Sie können eine bereits erteilte Einwilligung jederzeit widerrufen. Dazu reicht eine formlose Mitteilung per E-Mail an uns. Die Rechtmäßigkeit der bis zum Widerruf erfolgten Datenverarbeitung bleibt vom Widerruf unberührt. Widerspruchsrecht gegen die Datenerhebung in besonderen Fällen sowie gegen
Beschwerderecht bei der zuständigen Aufsichtsbehörde
Im Falle von Verstößen gegen die DSGVO steht den Betroffenen ein Beschwerderecht bei einer Aufsichtsbehörde, insbesondere in dem Mitgliedstaat ihres gewöhnlichen Aufenthalts, ihres Arbeitsplatzes oder des Orts des mutmaßlichen Verstoßes zu. Das Beschwerderecht besteht unbeschadet anderweitiger verwaltungsrechtlicher oder gerichtlicher Rechtsbehelfe. Recht auf Datenübertragbarkeit Sie haben das Recht, Daten, die wir auf Grundlage Ihrer Einwilligung oder in Erfüllung eines Vertrags
automatisiert verarbeiten, an sich oder an einen Dritten in einem gängigen, maschinenlesbaren Format aushändigen zu lassen. Sofern Sie die direkte Übertragung der Daten an einen anderen Verantwortlichen verlangen, erfolgt dies nur, soweit es technisch machbar ist.
SSL- bzw. TLS-Verschlüsselung
Diese Seite nutzt aus Sicherheitsgründen und zum Schutz der Übertragung vertraulicher Inhalte, wie zum Beispiel Bestellungen oder Anfragen, die Sie an uns als Seitenbetreiber senden, eine SSL-bzw. TLSVerschlüsselung. Eine verschlüsselte Verbindung erkennen Sie daran, dass die Adresszeile des Browsers von
„http://“ auf „https://“ wechselt und an dem Schloss-Symbol in Ihrer Browserzeile. Wenn die SSL- bzw. TLS-Verschlüsselung aktiviert ist, können die Daten, die Sie an uns übermitteln, nicht von Dritten mitgelesen werden.
Auskunft, Sperrung, Löschung und Berichtigung
Sie haben im Rahmen der geltenden gesetzlichen Bestimmungen jederzeit das Recht auf unentgeltliche Auskunft über Ihre gespeicherten personenbezogenen Daten, deren Herkunft und Empfänger und den Zweck der Datenverarbeitung und ggf. ein Recht auf Berichtigung, Sperrung oder Löschung dieser Daten.Hierzu sowie zu weiteren Fragen zum Thema personenbezogene Daten können Sie sich jederzeit unter der im Impressum angegebenen Adresse an uns wenden.
Recht auf Einschränkung der Verarbeitung Sie haben das Recht, die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen.
Hierzu können Sie sich jederzeit unter der im Impressum angegebenen Adresse an uns wenden. Das Recht auf Einschränkung der Verarbeitung besteht in folgenden Fällen: Wenn Sie die Richtigkeit Ihrer bei uns gespeicherten personenbezogenen Daten bestreiten, benötigen wir in der Regel Zeit, um dies zu überprüfen. Für die Dauer der Prüfung haben Sie das Recht, die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen. Wenn die Verarbeitung Ihrer personenbezogenen Daten unrechtmäßig geschah/geschieht, können Sie statt der Löschung die Einschränkung der Datenverarbeitung verlangen. Wenn wir Ihre personenbezogenen Daten nicht mehr benötigen, Sie sie jedoch zur Ausübung, Verteidigung oder Geltendmachung von Rechtsansprüchen benötigen, haben Sie das Recht, statt der
Löschung die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen. Wenn Sie einen Widerspruch nach Art. 21 Abs. 1 DSGVO eingelegt haben, muss eine Abwägung zwischen Ihren und unseren Interessen vorgenommen werden. Solange noch nicht feststeht, wessen Interessen überwiegen, haben Sie das Recht, die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen. Wenn Sie die Verarbeitung Ihrer personenbezogenen Daten eingeschränkt haben, dürfen diese Daten – von ihrer Speicherung abgesehen – nur mit Ihrer Einwilligung oder zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen oder zum Schutz der Rechte einer anderen natürlichen oder juristischen Person oder aus Gründen eines wichtigen öffentlichen Interesses der Europäischen Union oder
eines Mitgliedstaats verarbeitet werden.
3. Datenerfassung auf unserer Website
Cookies
Die Internetseiten verwenden teilweise so genannte Cookies. Cookies richten auf Ihrem Rechner keinen Schaden an und enthalten keine Viren. Cookies dienen dazu, unser Angebot nutzerfreundlicher, effektiver und sicherer zu machen. Cookies sind kleine Textdateien, die auf Ihrem Rechner abgelegt werden und die Ihr
Browser speichert. Die meisten der von uns verwendeten Cookies sind so genannte „Session-Cookies“. Sie werden nach Ende Ihres Besuchs automatisch gelöscht. Andere Cookies bleiben auf Ihrem Endgerät gespeichert bis Sie diese löschen. Diese Cookies ermöglichen es uns, Ihren Browser beim nächsten Besuch wiederzuerkennen. Sie können Ihren Browser so einstellen, dass Sie über das Setzen von Cookies informiert werden und Cookies nur im Einzelfall erlauben, die Annahme von Cookies für bestimmte Fälle oder generell ausschließen sowie das automatische Löschen der Cookies beim Schließen des Browser aktivieren. Bei der Deaktivierung von Cookies kann die Funktionalität dieser Website eingeschränkt sein. Cookies, die zur Durchführung des elektronischen Kommunikationsvorgangs oder zur Bereitstellung bestimmter, von Ihnen erwünschter Funktionen (z. B. Warenkorbfunktion) erforderlich sind, werden auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO gespeichert. Der Websitebetreiber hat ein berechtigtes Interesse an der Speicherung von Cookies zur technisch fehlerfreien und optimierten Bereitstellung seiner Dienste.
Soweit andere Cookies (z. B. Cookies zur Analyse Ihres Surfverhaltens) gespeichert werden, werden diese in dieser Datenschutzerklärung gesondert behandelt.
Anfrage per E-Mail, Telefon oder Telefax Wenn Sie uns per E-Mail, Telefon oder Telefax kontaktieren, wird Ihre Anfrage inklusive aller daraus hervorgehenden personenbezogenen Daten (Name, Anfrage) zum Zwecke der Bearbeitung Ihres Anliegens bei uns gespeichert und verarbeitet. Diese Daten geben wir nicht ohne Ihre Einwilligung weiter. Die Verarbeitung dieser Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. b DSGVO, sofern Ihre Anfrage mit der Erfüllung eines Vertrags zusammenhängt oder zur Durchführung vorvertraglicher Maßnahmen erforderlich ist. In allen übrigen Fällen beruht die Verarbeitung auf Ihrer Einwilligung (Art. 6 Abs. 1 lit. a DSGVO) und/oder auf unseren berechtigten Interessen (Art. 6 Abs. 1 lit. f DSGVO), da wir ein berechtigtes Interesse an der effektiven Bearbeitung der an uns gerichteten Anfragen haben. Die von Ihnen an uns per Kontaktanfragen übersandten Daten verbleiben bei uns, bis Sie uns zur Löschung auffordern, Ihre Einwilligung zur Speicherung widerrufen oder der Zweck für die Datenspeicherung entfällt (z. B. nach abgeschlossener Bearbeitung Ihres Anliegens). Zwingende gesetzliche Bestimmungen – insbesondere gesetzliche Aufbewahrungsfristen – bleiben unberührt.
Quelle:
https://www.e-recht24.de
- Details
- Zugriffe: 87972
willkommen bei kreativekiste.de
hier findest du viele detaillierte Bastelideen mit Holz, Metall und vielen anderen Materialien. Du kannst Schaltungen mit 9 Volt nachbauen, den Arduino grafisch programmieren oder in die Welt von Schützen und der Siemens Logo eintauchen. Es gibt Experimente, Rezepte, eine Outdoor Seite, Gedanken über Gott und die Welt, Spielgeräte zum Nachbauen, einen kleinen Blog über mich und einiges mehr.
Wenn dir die Seite gefällt dann teile sie doch mit deinen Freunden oder unterstütze die Arbeit mit einer kleinen Spende. Und nun viel Spaß beim stöbern und kreativ sein :-), dein Ronnie.
- Details
- Kategorie: Texte für die Seite
- Zugriffe: 48159
Meine Vorlagen findet ihr nun bei thingiverse, das für mich einfacher und für euch viel besser zum anschauen, da es gleich eine 3D vorschau gibt.
https://www.thingiverse.com/kreativekiste/designs
- Details
- Kategorie: Texte für die Seite
- Zugriffe: 39192
Hier gibt es die beiden Werkzeugkisten zum herunterladen und ausdrucken.

- Details
- Kategorie: Texte für die Seite
- Zugriffe: 23209
Il filo caldo è il classico assoluto quando si tratta di giochi elettrici. Filo caldo è, ma non lo stesso filo, caldo, perché ci sono molti circuiti differenti e tipi di gioco. Su questa pagina, mi piacerebbe introdurre di più di 15 circuiti e diversi tipi di filo caldo.
Weiterlesen: Fabbrica di filo caldo - istruzioni per la costruzione
- Details
- Kategorie: Texte für die Seite
- Zugriffe: 36388
Hier geht es zu den beiden Bauanleitung für die Buzzer Spiele:
- Buzzer für Spielstraßen und für den Arduino
- Buzzer Bauanleitung spezielle für den Arduino
- Details
- Kategorie: Texte für die Seite
- Zugriffe: 39931
Hier gibt die Ardublock Code Beispiele die ich in Videos oder auf meiner Seite vorstelle:
- Details
- Kategorie: Texte für die Seite
- Zugriffe: 32610
Mittlerweile bekomme ich mehrere Anfragen zum Thema Kälte, Klima, SPS, Arduino, grundsätzlich beantworte ich diese auch gerne. Ich mache diese Seite und auch meinen Kanal aber neben meinem Beruf, Familie, Haus und Hof, ich schaffe es einfach nicht 10 Mails pro Tag zu beantworten. So viel schon mal vorweg, wenn du also keine Antwort bekommst dann hat das nichts damit zu tun, das ich nicht wirklich gerne helfen würde, sondern weil ich es zeitlich einfach nicht hin bekomme. Wenn dir die Seite und der Kanal gefällt dann kannst du mir gerne über PayPal einen Betrag deiner Wahl zukommen lassen. Dazu einfach auf paypal.de gehen, Geld an ronnie.berzins @ googlemail.com senden auswählen und dann auf den "Geld an Freunde und Familie senden" Button klicken.
Gerne könnte ihr mich über E-Mail oder Telegramm kontaktieren, Telefonisch bin ich leider nicht zu erreichen:
ronnie.berzins @ gmail.com
- Details
- Kategorie: Texte für die Seite
- Zugriffe: 37412
Sie erhalten in den nächsten Tagen eine e-mail mit der Rechnung für ihre Bestellung. Bitte überweisen sie den Betrag auf das auf der Rechnung angegeben Konto. Mit der Überweisung ist der Kaufvertrag dann zustande gekommen und ich versende so schnell wie möglich aber innerhalb von 10 Werktagen die Schaltung oder das Spiel an sie.
Wenn sie ein Angebot oder eine Frage abgesendet haben erhalten sie ebenfalls in den nächsten Tage eine Antwort oder ein konkretes Angebot.
Viele Grüße ihr Team von kreativekiste.de
Hier geht es zur Startseite von KreativeKiste.de
Hier geht es zur Heißen-Draht-Manufaktur.de

- Details
- Kategorie: Texte für die Seite
- Zugriffe: 22304
Einfacher Sketch für ein Blaulicht mit Sirene.
Weiterlesen: Attiny Blaulicht mit Sirene für Feuerwehr & Polizei
- Details
- Kategorie: Texte für die Seite
- Zugriffe: 10663
void setup()
{
pinMode( 0 , OUTPUT);
pinMode( 3 , OUTPUT);
pinMode( 1 , OUTPUT);
pinMode( 2 , OUTPUT);
pinMode( 4 , OUTPUT);
pinMode( 5 , OUTPUT);
digitalWrite( 0 , HIGH );
digitalWrite( 3 , HIGH );
delay( 4000 );
}
void loop()
{
digitalWrite( 1 , LOW );
digitalWrite( 0 , HIGH );
delay( 9500 );
digitalWrite( 1 , HIGH );
delay( 3100 );
digitalWrite( 0 , LOW );
digitalWrite( 1 , LOW );
digitalWrite( 2 , HIGH );
delay( 15000 );
digitalWrite( 2 , LOW );
digitalWrite( 1 , HIGH );
delay( 3300 );
digitalWrite( 1 , LOW );
digitalWrite( 0 , HIGH );
delay( 3100 );
digitalWrite( 4 , LOW );
digitalWrite( 3 , HIGH );
delay( 9500 );
digitalWrite( 4 , HIGH );
delay( 3100 );
digitalWrite( 3 , LOW );
digitalWrite( 4 , LOW );
digitalWrite( 5 , HIGH );
delay( 15000 );
digitalWrite( 5 , LOW );
digitalWrite( 4 , HIGH );
delay( 3300 );
digitalWrite( 3 , HIGH );
digitalWrite( 4 , LOW );
delay( 3100 );
}
- Details
- Kategorie: Texte für die Seite
- Zugriffe: 37759
Im Zusammenhang mit dem Vertrieb von Batterien oder mit der Lieferung von Geräten, die Batterien enthalten, ist der Verkäufer verpflichtet, Sie auf Folgendes hinzuweisen:
Sie sind zur Rückgabe gebrauchter Batterien als Endnutzer gesetzlich verpflichtet. Sie können Batterien nach Gebrauch an den Verkäufer oder in den dafür vorgesehenen Rücknahmestellen (z.B. in Kommunalen Sammelstellen oder im Handel) unentgeltlich zurückgeben. Sie können die Batterien auch per Post an den Verkäufer zurücksenden.
Die auf den Batterien abgebildeten Symbole haben folgende Bedeutung:
Das Symbol der durchgekreuzten Mülltonne bedeutet, dass die Batterie nicht in den Hausmüll gegeben werden darf.
Pb = Batterie enthält mehr als 0,004 Masseprozent Blei
Cd = Batterie enthält mehr als 0,002 Masseprozent Cadmium
Hg = Batterie enthält mehr als 0,0005 Masseprozent Quecksilber."
Auszüge und Erklärung zu den Gesetzestexten:
1. Rücknahmepflicht
Gem. § 9 Abs.1 BattG ist jeder Vertreiber von Batterien verpflichtet, vom Endnutzer Altbatterien an oder in unmittelbarer Nähe der Verkaufsstelle unentgeltlich
zurückzunehmen.
- Die Rücknahmepflicht ist allerdings auf Altbatterien der Art beschränkt, die der Vertreiber als Neubatterien im Sortiment führt oder geführt hat.
- Der Kunde ist also nicht dahingehend beschränkt, ausschließlich die Batterien zurückzugeben, die er beim Vertreiber auch tatsächlich erworben hat - er darf aber auch keine „sortimentsfremden“ Altbatterien zurückgeben.
2. Hinweisplicht
Jeder Vertreiber, der gewerblich Batterien an Endnutzer abgibt, hat den Kunden gem. § 18 Abs.1 BattG durch gut sicht- und lesbare, im unmittelbaren Sichtbereich des Hauptkundenstroms platzierte Schrift- oder Bildtafeln darauf hinzuweisen:
- dass Batterien nach Gebrauch an der Verkaufsstelle unentgeltlich zurückgegeben werden können;
- dass der Endnutzer zur Rückgabe von Altbatterien gesetzlich verpflichtet ist;
- welche Bedeutung das Symbol der durchgestrichene Mülltonne gem. § 17 Abs.1 BattG hat;
- welche Bedeutung die nachfolgenden chemischen Zeichen Hg, Cd, Pb nach § 17 Abs.3 BattG haben
- Details
- Kategorie: Texte für die Seite
- Zugriffe: 43080

- Details
- Kategorie: Texte für die Seite
- Zugriffe: 44560
Programme für den heißen Draht mit Attiny 45.
Programm von der heißen Draht Seite, dass jeden Fehler für eine Sekunde optisch und akustisch darstellt.
void setup()
{
pinMode( 1 , INPUT);
pinMode( 0 , OUTPUT);
digitalWrite(1, HIGH);
pinMode( 4 , OUTPUT);
pinMode( 0 , OUTPUT);
}
void loop()
{
if (!( digitalRead(1) ))
{
analogWrite(0 , 100);
digitalWrite( 4 , HIGH );
delay( 900 );
digitalWrite( 0 , LOW );
digitalWrite( 4 , LOW );
}
delay( 2 );
}
Bei diesem Programm wird der analoge Eingang des Attiny verwendet. Damit lässt sich nicht nur ein HIGH oder LOW Signal auslesen, sondern ein variables Signal. Dies hat zur Folge, dass die Schwierigkeit verändert werden kann. So ist bereits ein zu nahe kommen des Drahtes oder ein richtiger Druck auf den Draht nötig um einen Fehler zu "machen". Möglich wäre auch die Zeit der Berührung wiederzugeben und erst ab einer bestimmten Zeit den Fehler anzeigen zu lassen.
void setup() {
pinMode(1, OUTPUT);
}
void loop() {
if(analogRead(2) < 50)
{
for(int x = 0;x < 100; x++)
{
digitalWrite(1, HIGH);
delay(500);
digitalWrite(1, LOW);
delay(500);
}
}
}
Bei diesem Programm muss der Attiny über reset zurückgesetzt werden, da nach einem Fehler die DELAY Zeit extrem hoch ist. Bei diesem Spiel hat der Spieler also nach einem Fehler verloren. Über eine rote LED an Pin0 und eine grüne LED an PIN1 wird der Spielstand angezeigt. Nach dem reset leuchtet die grüne und nach einem Fehler die rote LED. Der Summer wird an PIN2 anschlossen (bei mehr als 40 ma bitte einen Transistor verwenden). Den Fehler bekommt der Attiny über ein HIGH Signal an PIN 4. Pin 4 bitte mit einem PULL DOWN-Widerstand versehen.
void setup()
{
pinMode( 4 , INPUT);
pinMode( 0 , OUTPUT);
pinMode( 1 , OUTPUT);
pinMode( 2 , OUTPUT);
digitalWrite( 0 , HIGH );
digitalWrite( 1 , LOW );
}
void loop()
{
if (digitalRead(4))
{
digitalWrite( 0 , LOW );
digitalWrite( 1 , HIGH );
digitalWrite( 2 , HIGH );
delay( 900 );
digitalWrite( 2 , LOW );
delay( 9999999 );
}
delay( 1 );
}
Bei diesem Programm werden 3 LED nacheinander angeschaltet und bei jedem Fehler ertönt ein Summer. Somit ist das Spiel nicht nach einem Fehler aus, sondern nach drei Fehlern. Die Pin Belegung bitte aus dem Code entnehmen.
int fehler = 0 ;
int zeit = 0 ;
int a;
void setup()
{
pinMode( 4 , INPUT);
pinMode( 0 , OUTPUT);
pinMode( 1 , OUTPUT);
pinMode( 2 , OUTPUT);
pinMode( 3 , OUTPUT);
fehler = 0 ;
zeit = 100 ;
for (a=1; a<= ( 2 ); ++a )
{
digitalWrite( 0 , LOW );
delay( zeit );
digitalWrite( 1 , LOW );
delay( zeit );
digitalWrite( 2 , LOW );
delay( zeit );
digitalWrite( 0 , HIGH );
delay( zeit );
digitalWrite( 1 , HIGH );
delay( zeit );
digitalWrite( 2 , HIGH );
delay( zeit );
}
digitalWrite( 0 , HIGH );
digitalWrite( 1 , HIGH );
digitalWrite( 2 , HIGH );
}
void loop()
{
if (digitalRead(4))
{
fehler = ( fehler + 1 ) ;
delay( 2 );
if (( ( fehler ) == ( 1 ) ))
{
digitalWrite( 0 , LOW );
digitalWrite( 3 , HIGH );
delay( 700 );
digitalWrite( 3 , LOW );
}
if (( ( fehler ) == ( 2 ) ))
{
digitalWrite( 1 , LOW );
digitalWrite( 3 , HIGH );
delay( 700 );
digitalWrite( 3 , LOW );
}
if (( ( fehler ) == ( 3 ) ))
{
digitalWrite( 2 , LOW );
digitalWrite( 3 , HIGH );
delay( 1100 );
digitalWrite( 3 , LOW );
for (a=1; a<= ( 3 ); ++a )
{
digitalWrite( 0 , LOW );
delay( zeit );
digitalWrite( 1 , LOW );
delay( zeit );
digitalWrite( 2 , LOW );
delay( zeit );
digitalWrite( 0 , HIGH );
delay( zeit );
digitalWrite( 1 , HIGH );
delay( zeit );
digitalWrite( 2 , HIGH );
delay( zeit );
}
digitalWrite( 0 , HIGH );
digitalWrite( 1 , HIGH );
digitalWrite( 2 , HIGH );
fehler = 0 ;
delay( 20 );
}
}
}
Bei diesem Programm werden 99 Sekunden auf einem Sieben-Segment Display herunter gezählt. Wird ein Fehler begangen, ist das Spiel sofort vorbei. Die Pin-Belegung bitte aus dem Code entnehmen.
const byte startStopPin = 0, mistakePin = 1, buzzerPin = 16;
long startMillis;
void setup()
{
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
pinMode(14, OUTPUT);
pinMode(15, OUTPUT);
pinMode(startStopPin, INPUT);
pinMode(mistakePin, INPUT);
pinMode(buzzerPin, OUTPUT);
displayNumber(0);
while(digitalRead(startStopPin) == LOW) // wait for the start signal
{ ; }
startMillis = millis();
}
void loop()
{
long number = 99 - (millis() - startMillis) / 1000;
if (number <= 0)
{
gameOver();
}
if (digitalRead(startStopPin) == HIGH && (millis() - startMillis) > 2000)
{
while(true)
{ ; }
}
if (digitalRead(mistakePin) == HIGH && (millis() - startMillis) > 2000)
{
gameOver();
}
displayNumber(number);
}
void displayNumber(byte x)
{
x %= 100;
set1(~dec27(x % 10));
set10(~dec27(x / 10));
}
void set1(byte value)
{
digitalWrite(2, bitRead(value, 0)); // segment a
digitalWrite(3, bitRead(value, 1)); // segment b
digitalWrite(4, bitRead(value, 2)); // segment c
digitalWrite(5, bitRead(value, 3)); // segment d
digitalWrite(6, bitRead(value, 4)); // segment e
digitalWrite(7, bitRead(value, 5)); // segment f
digitalWrite(8, bitRead(value, 6)); // segment g
}
void set10(byte value)
{
digitalWrite(9, bitRead(value, 0)); // segment a
digitalWrite(10, bitRead(value, 1)); // segment b
digitalWrite(11, bitRead(value, 2)); // segment c
digitalWrite(12, bitRead(value, 3)); // segment d
digitalWrite(13, bitRead(value, 4)); // segment e
digitalWrite(14, bitRead(value, 5)); // segment f
digitalWrite(15, bitRead(value, 6)); // segment g
}
byte dec27(byte decimal) {
if (decimal == 0)
return B00111111;
if (decimal == 1)
return B00000110;
if (decimal == 2)
return B01011011;
if (decimal == 3)
return B01001111;
if (decimal == 4)
return B01100110;
if (decimal == 5)
return B01101101;
if (decimal == 6)
return B01111101;
if (decimal == 7)
return B0000111;
if (decimal == 8)
return B01111111;
if (decimal == 9)
return B01101111;
return 0;
}
void gameOver()
{
displayNumber(0);
digitalWrite(buzzerPin, HIGH);
delay(3000);
digitalWrite(buzzerPin, LOW);
while (true)
{ ; }
}
- Details
- Kategorie: Texte für die Seite
- Zugriffe: 41793
- Details
- Kategorie: Texte für die Seite
- Zugriffe: 48359
developed by Timo Denk (Jan. 2015)
#!/usr/bin/env python
#coding=utf-8
import pygame, sys, time, os, RPi.GPIO as GPIO
from pygame.locals import *
#GPIO
startPin = 32
errorPin = 31
enableErrorTimeAddingPin = 15
shutdownPin = 3
buzzerPin = 12
GPIO.setmode(GPIO.BOARD)
GPIO.setup(startPin, GPIO.IN)
GPIO.setup(errorPin, GPIO.IN)
GPIO.setup(enableErrorTimeAddingPin, GPIO.IN)
GPIO.setup(shutdownPin, GPIO.IN)
GPIO.setup(buzzerPin, GPIO.OUT)
#other constants
timePerError = 5
screenSizeX = 640
screenSizeY = 400
startstop_delay = 3000
error_delay = 1000
game_over_screen_duration = 15
text_margin_top = 0
text_margin_left = 10
line_height = 150
buzzer_high = 2000
last_error_detection = 0
last_error_increment = 0
pygame.init()
#colors
redColor = pygame.Color(255, 255, 255)
blackColor = pygame.Color(0, 0, 0)
whiteColor = pygame.Color(255, 255, 255)
grayColor = pygame.Color(128, 128, 128)
mainFontColor = redColor
#fonts
font = pygame.font.Font('freesansbold.ttf', 100)
def toggle_fullscreen():
screen = pygame.display.get_surface()
tmp = screen.convert()
caption = pygame.display.get_caption()
cursor = pygame.mouse.get_cursor() # Duoas 16-04-2007
w,h = screen.get_width(),screen.get_height()
flags = screen.get_flags()
bits = screen.get_bitsize()
pygame.display.quit()
pygame.display.init()
screen = pygame.display.set_mode((w,h),flags^FULLSCREEN,bits)
screen.blit(tmp,(0,0))
pygame.display.set_caption(*caption)
pygame.key.set_mods(0) #HACK: work-a-round for a SDL bug??
pygame.mouse.set_cursor( *cursor ) # Duoas 16-04-2007
return screen
def clearScreen():
screen.fill(blackColor)
return
def handle_events():
time.sleep(0.04)
if GPIO.input(shutdownPin) == True:
shutdown_raspberry()
for event in pygame.event.get():
if event.type == KEYDOWN and event.key == K_ESCAPE:
shutdown_raspberry()
else:
if event.type == pygame.QUIT or event.type == KEYDOWN:
exit_application()
#buzzer
GPIO.output(buzzerPin, not(last_error_increment < get_millis() - buzzer_high))
#print str(not(last_error_increment < get_millis() - buzzer_high))
return
def exit_application():
pygame.quit()
sys.exit()
return
def shutdown_raspberry():
os.system("sudo shutdown -h now")
return
def getUnixTime():
return int(time.time())
def get_millis():
return int(round(time.time() * 1000))
pygame.mouse.set_visible(False) # hide mouse
screen = pygame.display.set_mode((screenSizeX, screenSizeY), pygame.FULLSCREEN)
#pygame.display.set_caption('Heisser Draht') # not required for fullscreen application
#screen = toggle_fullscreen()
while True: # main loop
#global label storage
time_surface = 0
errors_surface = 0
time_rectangle = 0
errors_rectangle = 0
last_error_detection = 0
last_error_increment = 0
header_surface = font.render('Let\'s play!', True, mainFontColor)
header_rectangle = header_surface.get_rect()
header_rectangle.midleft = (text_margin_left, (int)(screenSizeY / 2))
screen.blit(header_surface, header_rectangle)
pygame.display.flip()
while GPIO.input(startPin) == False: #wait for the user to press start button
handle_events()
start_time = getUnixTime()
errors = 0
errorAdded = False
justStarted = True
header_surface = font.render('', True, mainFontColor)
game_started = get_millis()
while True: # game running
handle_events()
if GPIO.input(errorPin) == True:
if errorAdded == False and last_error_increment < get_millis() - error_delay:
errors += 1
last_error_increment = get_millis()
else:
last_error_detection = get_millis()
errorAdded = True
else:
errorAdded = False
int_time = getUnixTime() - start_time
if GPIO.input(enableErrorTimeAddingPin) == True:
int_time = getUnixTime() - start_time + errors * timePerError
time_surface = font.render('Time: ' + str(int_time) + 's', True, mainFontColor)
time_rectangle = time_surface.get_rect()
time_rectangle.topleft = (text_margin_left, text_margin_top + line_height * 0.5)
errors_surface = font.render('Mistakes: ' + str(errors), True, mainFontColor)
errors_rectangle = errors_surface.get_rect()
errors_rectangle.topleft = (text_margin_left, text_margin_top + line_height * 1.5)
clearScreen()
screen.blit(errors_surface, errors_rectangle) #errors
screen.blit(time_surface, time_rectangle) #time
header_rectangle.midleft = (text_margin_left, text_margin_top)
screen.blit(header_surface, header_rectangle) #header
pygame.display.flip()
if GPIO.input(startPin) == False:
justStarted = False
if GPIO.input(startPin) == True and justStarted == False and game_started < get_millis() - startstop_delay:
break
clearScreen()
header_surface = font.render('Let\'s play!', True, mainFontColor)
#reposition for game over screen
header_rectangle.topleft = (text_margin_left, text_margin_top)
time_rectangle.topleft = (text_margin_left, text_margin_top + line_height * 1)
errors_rectangle.topleft = (text_margin_left, text_margin_top + line_height * 2)
screen.blit(errors_surface, errors_rectangle) #errors
screen.blit(time_surface, time_rectangle) #time
screen.blit(header_surface, header_rectangle) #header
pygame.display.flip()
gos_shown = get_millis()
while gos_shown > get_millis() - 15000:
handle_events()
if GPIO.input(startPin) == True and gos_shown < get_millis() - 1000:
gos_shown = 0
#while GPIO.input(startPin) == False:
# handle_events()
#while GPIO.input(startPin) == True:
# handle_events()
#while GPIO.input(startPin) == False:
# handle_events()*/
clearScreen()
time.sleep(1)
CODE (alt)
#!/usr/bin/env python
#coding=utf-8
import pygame, sys, time, os, RPi.GPIO as GPIO
from pygame.locals import *
#GPIO
startPin = 32
errorPin = 31
enableErrorTimeAddingPin = 15
shutdownPin = 3
GPIO.setmode(GPIO.BOARD)
GPIO.setup(startPin, GPIO.IN)
GPIO.setup(errorPin, GPIO.IN)
GPIO.setup(enableErrorTimeAddingPin, GPIO.IN)
GPIO.setup(shutdownPin, GPIO.IN)
#other constants
timePerError = 5
screenSizeX = 900
screenSizeY = 900
pygame.init()
#colors
redColor = pygame.Color(255, 0, 0)
blackColor = pygame.Color(0, 0, 0)
whiteColor = pygame.Color(255, 255, 255)
grayColor = pygame.Color(128, 128, 128)
mainFontColor = redColor
#fonts
font = pygame.font.Font('freesansbold.ttf', 90)
def toggle_fullscreen():
screen = pygame.display.get_surface()
tmp = screen.convert()
caption = pygame.display.get_caption()
cursor = pygame.mouse.get_cursor() # Duoas 16-04-2007
w,h = screen.get_width(),screen.get_height()
flags = screen.get_flags()
bits = screen.get_bitsize()
pygame.display.quit()
pygame.display.init()
screen = pygame.display.set_mode((w,h),flags^FULLSCREEN,bits)
screen.blit(tmp,(0,0))
pygame.display.set_caption(*caption)
pygame.key.set_mods(0) #HACK: work-a-round for a SDL bug??
pygame.mouse.set_cursor( *cursor ) # Duoas 16-04-2007
return screen
def clearScreen():
screen.fill(blackColor)
return
def handle_events():
if GPIO.input(shutdownPin) == True:
shutdown_raspberry()
for event in pygame.event.get():
if event.type == KEYDOWN and event.key == K_ESCAPE:
shutdown_raspberry()
else:
if event.type == pygame.QUIT or event.type == KEYDOWN:
exit_application()
return
def exit_application():
pygame.quit()
sys.exit()
return
def shutdown_raspberry():
os.system("sudo shutdown -h now")
return
pygame.mouse.set_visible(False) # hide mouse
screen = pygame.display.set_mode((screenSizeX, screenSizeY), pygame.FULLSCREEN)
#pygame.display.set_caption('Heisser Draht') # not required for fullscreen application
#screen = toggle_fullscreen()
while True: # main loop
#global label storage
time_surface = 0
errors_surface = 0
time_rectangle = 0
errors_rectangle = 0
header_surface = font.render('Dr' + u'ü' + 'cken Sie Start!', True, mainFontColor)
header_rectangle = header_surface.get_rect()
header_rectangle.topleft = (0, 100)
screen.blit(header_surface, header_rectangle)
pygame.display.flip()
while GPIO.input(startPin) == False: #wait for the user to press start button
handle_events()
start_time = int(time.time())
errors = 0
errorAdded = False
justStarted = True
header_surface = font.render('Spiel l' + u'ä' + 'uft!', True, mainFontColor)
while True: # game running
handle_events()
if GPIO.input(errorPin) == True:
if errorAdded == False:
errors += 1
errorAdded = True
else:
errorAdded = False
int_time = int(time.time()) - start_time
if GPIO.input(enableErrorTimeAddingPin) == True:
int_time = int(time.time()) - start_time + errors * timePerError
time_surface = font.render('Zeit: ' + str(int_time) + 's', True, mainFontColor)
time_rectangle = time_surface.get_rect()
time_rectangle.topleft = (0, 300)
errors_surface = font.render('Fehler: ' + str(errors), True, mainFontColor)
errors_rectangle = errors_surface.get_rect()
errors_rectangle.topleft = (0, 400)
clearScreen()
screen.blit(errors_surface, errors_rectangle) #errors
screen.blit(time_surface, time_rectangle) #time
screen.blit(header_surface, header_rectangle) #header
pygame.display.flip()
if GPIO.input(startPin) == False:
justStarted = False
if GPIO.input(startPin) == True and justStarted == False:
break
clearScreen()
header_surface = font.render('Game over!', True, mainFontColor)
screen.blit(errors_surface, errors_rectangle) #errors
screen.blit(time_surface, time_rectangle) #time
screen.blit(header_surface, header_rectangle) #header
pygame.display.flip()
while GPIO.input(startPin) == False:
handle_events()
while GPIO.input(startPin) == True:
handle_events()
while GPIO.input(startPin) == False:
handle_events()
clearScreen()
time.sleep(1)
- Details
- Kategorie: Texte für die Seite
- Zugriffe: 20834
Durch Werbung decke ich die laufenden Kosten dieser Seite ab, wie die Joomla Pflege und den Webspace. Für Werkzeug und Material reicht die Werbung aber nicht. Wenn dir die Seite gefällt und du öfters hier bist, würde ich mich über eine kleine Unterstützung und Anerkennung natürlich sehr freuen.
- Details
- Kategorie: Texte für die Seite
- Zugriffe: 49984
Hier gibt es alles andere, was sonst in keine Kategorie gepasst hat.
Hörspiel, der Kaufhaus Komplott:
- Details
- Zugriffe: 72295
Hier geht es zur: Datenschutzerklärung
Angaben gemäß § 5 TMG:
Inhaber: Ronnie Berzins
Rechtsform: Gewerbe (Steuerform Kleingewerbe)
Name: "Kreative Kiste" Handel, Vermarktung und Bereitstellung von Kreativprodukten
Redaktionell Verantwortlicher gemäß §55: Ronnie Berzins
über mich
- Details
- Zugriffe: 45959
Ronnie, 40 Jahre, verheiratet, vier Kinder, Kälteanlagenbauer, schwäbischer Tüftler&Bastler, Kraftsportler, Jungscharler und ich liebe Milch & Mandel.
Seit 20 Jahren schreibe ich nun Bastelanleitungen und veröffentliche sie schon 17 Jahre im Netz und das Ergebnis seht ihr hier im netz.
Wenn du diese Seite unterstützen möchtest, kannst du das hier gern tun.