#randomvalues
Explore tagged Tumblr posts
o-agassy · 7 years ago
Text
Analogi Gelas Aqua
Rejeki kita itu seperti gelas Aqua. Tak akan bisa lebih dan tak akan bisa kurang, sudah pas sesuai takaran.
Mau diusahakan segiat apapun, rejeki kita tetaplah seperti gelas Aqua. Kecenderungan manusia ingin rejeki berlebih, namun kita kadang lupa bahwa kapasitas kita tak akan mampu menampungnya. Meluber dan kemudian tumpah tak terkendali.
Berusaha melalui jalan yang tidak halal misal. Hanya sementara kita akan menikmatinya, dan selebihnya akan dikembalikan rejeki tersebut kepada yang berhak.
Mau korupsi sepuluh miliar pun, atau dua puluh miliar juga akan percuma, karena itu memang bukan rejeki kita.
Masih ada mereka yang baik, yang terus memperjuangkan kebaikan. Masih ada orang-orang baik di pemerintahan yang terus menjaga amanah mereka untuk rakyat.
Tak akan lama, orang-orang yang curang mengatasnamakan rakyat dan menindas. Meskipun tidak tertangkap, saya yakin kehidupan mereka tidak akan menemui rasa aman dan nyaman.
Mungkin saja rejeki tidak halal tersebut malah menjadi ujian tersendiri bagi mereka. Keluarga yang tidak utuh, istri yang nusyuz, atau perkara lain yang diakibatkan oleh mengalirknya darah yang tidak barokah. Naudzubillahimindzalik.
Memang ada, rejeki yang tidak diberikan kepada kita karena memang kita tidak akan sanggup menerimanya.
Cacing tanah tidak membutuhkan mata dan telinga untuk hidup. Apabila mereka memilikinya, mungkin saja malah akan menjadi beban disetiap detiknya.
Jadi cobalah untuk kita menjadi pribadi muslim yang selalu bersyukur, atas nikmat dan ujian yang diberikan.
Karena gelas aqua kita, berbeda. Tapi tetap saja, itu gelas aqua. Tidak lebih dan tidak kurang.
Bogor, 25 Juni 2018 | A. Firmansyah
3 notes · View notes
emilytitus69 · 5 years ago
Text
Good News For Bitcoin From India, Should Other Countries Additionally Observe The Go Well With?
Steemit, the web site that drives steem, gives forex to content material creators within the type of the eponymous steem tokens, which might then be traded on the crypto market. Scrypt is a password-primarily based key derivation operate that is designed to be costly computationally and memory-clever to be able to make brute-pressure assaults unrewarding. Provides an asynchronous scrypt implementation. Asch is a Chinese blockchain answer that gives users with the power to create sidechains and blockchain functions with a streamlined interface. The consumer interface is welcoming, and anyone can full a transaction with out figuring out a lot element about Exodus. RandomValues() is the only member of the Crypto interface which can be used from an insecure context. By July 2018, Multicoin had raised a mixed $70 million from David Sacks (a member of the so-called "PayPal Mafia"), Wilson and other investors. Nearly immediately they raised $2.5 million from angel buyers. This tells me that buyers are merely "buying the dip" quite than figuring out which cryptos have enough real-world value to outlive the crash. The only time when producing the random bytes could conceivably block for a longer period of time is true after boot, when the entire system continues to be low on entropy. Implementations are required to make use of a seed with enough entropy, like a system-stage entropy supply.
Trusted by users all internationally
MoneyGram has gained over $eleven million from the blockchain-based mostly funds firm Ripple Labs
Up-to-date information and opinion regarding cryptocurrency by way of tech and worth
Easy methods to Trade Ethereum
60 Years of Kolkata Mint
Limit Order
Practically 200 trading pairs
Setup a Binance Account‚https://CryptoCousins.com/Binance
youtube
However keep in thoughts 3.1.x variations still use Math.random() which is cryptographically not safe, as it is not random enough. If it's absolute required to run CryptoJS in such an surroundings, stay with 3.1.x model. For this reason CryptoJS would possibly doesn't run in some JavaScript environments without native crypto module. CCM mode may fail as CCM can't handle multiple chunk of knowledge per instance. The Numeraire resolution is a decentralized effort that is designed to supply better outcomes by leveraging anonymized knowledge sets. Spherical represents a concerted effort to decentralize inefficient eSports platforms. The FirstBlood platform goals to optimize the static, centralized eSports world. To convey the neatest minds and prime initiatives in the trade together for a FREE online occasion that anybody can watch anywhere on the planet. Bitcoin is the most important and most successful cryptocurrency on this planet, and goals to solve a big-scale problem- the world economic system is to interconnected, and, over the long run, is unstable.
Be a part of the CryptoRisingNews mailing checklist and get an important, exclusive Cryptocurrency news along with cryptocurrency and fintech gives that can boost your trading revenue, straight to your inbox! IOTA is a highly revolutionary distributed ledger technology platform that aims to operate because the backbone of the Web of Issues. MaidSafeCoin is much like Factom, providing for the storage of critical items on a decentralized blockchain ledger. The Bitshares platform was originally designed to create digital assets that could possibly be used to trace assets equivalent to gold and silver, but has grown into a decentralized exchange that offers customers the ability to situation new belongings on. Like Monero, Zcash gives complete transaction anonymity, but also pioneers the usage of "zero-data proofs", which permit for totally encrypted transactions to be confirmed as legitimate. Our line presents whole and natural merchandise full of well being benefits on your equine partners and pets in and out.
The asynchronous version of crypto.randomFill() is carried out in a single threadpool request. The final time the present help stage was hit TNTBTC grew by 250% in a single single candle. There is no such thing as a single entity that can affect the currency. This methodology can throw an exception underneath error circumstances. Observe that typedArray is modified in-place, and no copy is made. Observe that these charts only embody a small variety of precise algorithms as examples. The API additionally permits using ciphers and hashes with a small key dimension which can be too weak for protected use. Gold has historically been viewed as the protected haven throughout recessions and bear markets. The important thing used with RSA, DSA, and DH algorithms is advisable to have at the least 2048 bits and that of the curve of ECDSA and ECDH at the least 224 bits, to be protected to use for a number of years. It is strongly recommended that a salt is random and no less than 16 bytes long. A selected HMAC digest algorithm specified by digest is applied to derive a key of the requested byte size (keylen) from the password, salt and iterations.
The salt ought to be as unique as potential. The iterations argument must be a quantity set as excessive as possible. The Helix crew has set its most block sizes to 2 MB. The algorithm is dependent on the available algorithms supported by the version of OpenSSL on the platform. On this model Math.random() has been replaced by the random methods of the native crypto module. Synchronous version of crypto.randomFill(). Don't USE THIS Version! This property, however, has been deprecated and use needs to be avoided. An exception is thrown when key derivation fails, in any other case the derived key is returned as a Buffer. If key isn't a KeyObject, this perform behaves as if key had been handed to crypto.createPublicKey(). If key isn't a KeyObject, this function behaves as if key had been handed to crypto.createPrivateKey(). In that case, this perform behaves as if crypto.createPrivateKey() had been referred to as, except that the kind of the returned KeyObject will probably be 'public' and that the personal key cannot be extracted from the returned KeyObject.
1 note · View note
keeganl14 · 3 years ago
Text
Project 1
Goal:  Show that you can make a simple interactive system with physical controls for a coherent, engaging experience.
For project 1 I made a lock picking/”crack the code” game. The goal of the game is to get both LED lights to be fully lit by using a light sensor and a potentiometer. When the program first runs, both lights will be fully turned off; By playing around with the amount of light exposed to the sensor, one LED will be turned on which enables the player to work on the next LED. The user should then spin the potentiometer slowly in a lock-like fashion to start “picking the lock”. Once the user turns the potentiometer in the right range the second LED flashes quickly, after 5 correct turns the user wins and both lights become fully illuminated. If the user would like to play again, all they have to do is shine bright light on the sensor and the game restarts.
My main issues for this project were figuring out how to structure the code and how to get the light sensor to work. I was having trouble with the nesting of the if-statements in the code, and due to the lack of intellisense on the Arduino app, I just had to go through and triple check everything. Eventually I took certain variables out, and simplified the layout of the code and was able to get everything working. I also had to look up how to get random numbers for the potentiometer-turning stage of the game. The light sensor problem was an easy fix, as I had it wired up correctly but I put the wrong pin in the code.
Pictures/Video:
Tumblr media Tumblr media
youtube
Code:
//create a simple lock picking system that utilizes a photo resistor and a potentiometer
//to start the game, light must be deprived from the photo resistor. This will turn on one of the LEDs
//another LED will be powered off and can only be turned on once the potentiometer is turned the right direction
//once the potentiometer has been turned to the right range 5 times, you win and "break" the lock (Both LEDs on full power)
int inputPin = A0; int ledPin1 = 5; int ledPin2 = 2; int analogInputPin1 = A0; int analogInputPin2 = A1;
//game variables int timesTurnedCorrectly = 0; int prVal; int ptVal; int randomVal = 0; bool hasWon = false; bool startGame = false;
int startGameThreshold = 900; int resetGameThreshold = 100;
void setup() {  pinMode(ledPin1, OUTPUT);  pinMode(ledPin2, OUTPUT);  Serial.begin(9600);  randomSeed(analogRead(0));  randomVal = random(0, 1000); }
void loop() {  delay(10); //rest between reads  ptVal = analogRead(analogInputPin1);  prVal = analogRead(analogInputPin2);  Serial.println(hasWon);  //Serial.println(ptVal);
 if(!hasWon)  {
   prVal = analogRead(analogInputPin2);
   if(prVal > startGameThreshold)    {      startGame = true;    }
   if(startGame)    {
     //power one LED to signify that the game has started      analogWrite(ledPin2, 255);
     //detect if the potentiometer is turned the correct way, with 10 units of padding      if(ptVal < randomVal + 5 && ptVal > randomVal - 5)      {        randomVal = random(0, 1000);        timesTurnedCorrectly++;
       //signify that this randomValue has been "cracked" by the user        analogWrite(ledPin1, 255);        delay(500);        analogWrite(ledPin1, 0);
     }    }
   //check for the win condition    if(timesTurnedCorrectly > 4)    {      hasWon = true;    }
 }  else{      //fully power both LEDs      analogWrite(ledPin1, 255);      analogWrite(ledPin2, 255);  }
 //if the photo resister meets a certain threshold, reset the game  if(prVal < resetGameThreshold)  {    resetGame();  }
 }
 //set all the values back to their defaults. Essentially "resetting" the game  void resetGame(){    timesTurnedCorrectly = 0;    hasWon = false;    startGame = false;    randomVal = random(0, 1000);    analogWrite(ledPin1, 0);    analogWrite(ledPin2, 0);  }
Sources Used:
https://www.arduino.cc/reference/en/language/functions/random-numbers/random/
1 note · View note
unrulymusic · 8 years ago
Text
// generic array-generation mechanisms embodying a variety of patterns float[] singleValue(float value, int resultLength) {   float[] resultPattern = new float[resultLength];   for (int i = 0; i < resultLength; i++) {     resultPattern[i] = value;   }   return resultPattern; } // gradients float[] gradientByRow(float startValue, float delta, boolean direction, int columns, int rows) {   // version which accumulates by delta from startValue   float[] resultPattern = new float[columns * rows];   for (int i = 0; i < rows; i++) {     float patternValue;     if (direction) {       patternValue = startValue + (i * delta);     } else {       patternValue = startValue + ((rows - i - 1) * delta);     }     for (int j = 0; j < columns; j++) {       resultPattern[i * columns + j] = patternValue;     }   }   return resultPattern; } float[] gradientByRow(float maxValue, boolean direction, int columns, int rows) {   // version which always maps gradient from maxValue/rows to maxValue   float[] resultPattern = new float[columns * rows];   for (int i = 0; i < rows; i++) {     float patternValue;     if (direction) {       patternValue = (i + 1) * (maxValue / float(rows));     } else {       patternValue = (rows - i) * (maxValue / float(rows));     }     for (int j = 0; j < columns; j++) {       resultPattern[i * columns + j] = patternValue;     }   }   return resultPattern; } float[] gradientByColumn(float startValue, float delta, boolean direction, int columns, int rows) {   // version which accumulates by delta from startValue   float[] resultPattern = new float[columns * rows];   for (int i = 0; i < columns; i++) {     float patternValue;     if (direction) {  ��    patternValue = startValue + (i * delta);     } else {       patternValue = startValue + ((columns - i - 1) * delta);     }     for (int j = 0; j < rows; j++) {       resultPattern[j * columns + i] = patternValue;     }   }   return resultPattern; } float[] gradientByColumn(float maxValue, boolean direction, int columns, int rows) {   // version which always maps gradient from maxValue/cols to maxValue   float[] resultPattern = new float[columns * rows];   for (int i = 0; i < columns; i++) {     float patternValue;     if (direction) {       patternValue = (i + 1) * (maxValue / float(columns));     } else {       patternValue = (columns - i) * (maxValue / float(columns));     }     for (int j = 0; j < rows; j++) {       resultPattern[j * columns + i] = patternValue;     }   }   return resultPattern; } float[] gradient2D(float startValue, float delta, int direction, int columns, int rows) {   // version which accumulates by delta above startValue   float[] resultPattern = new float[columns * rows];   for (int i = 0; i < columns; i++) {     for (int j = 0; j < rows; j++) {       float patternValue;       switch(direction) {       case 0:         patternValue = startValue + ((i + 1) * (j + 1) * delta);         break;       case 1:         patternValue = startValue + ((columns - i) * (j + 1) * delta);         break;       case 2:         patternValue = startValue + ((i + 1) * (rows - j) * delta);         break;       default:         patternValue = startValue + ((columns - i) * (rows - j) * delta);         break;       }       resultPattern[j * columns + i] = patternValue;     }   }   return resultPattern; } float[] gradient2D(float startValue, float rowdelta, float columndelta, int direction, int columns, int rows) {   // version which accumulates by one horizontal delta and one vertical delta above startValue   float[] resultPattern = new float[columns * rows];   for (int i = 0; i < columns; i++) {     for (int j = 0; j < rows; j++) {       float patternValue;       switch(direction) {       case 0:         patternValue = startValue + ((i + 1) * columndelta) + ((j + 1) * rowdelta);         break;       case 1:         patternValue = startValue + ((columns - i) * columndelta) + ((j + 1) * rowdelta);         break;       case 2:         patternValue = startValue + ((i + 1) * columndelta) + ((rows - j) * rowdelta);         break;       default:         patternValue = startValue + ((columns - i) * columndelta) + ((rows - j) * rowdelta);         break;       }       resultPattern[j * columns + i] = patternValue;     }   }   return resultPattern; } float[] gradient2D(float maxValue, int direction, int columns, int rows) {   // version which always maps gradient from 0 to maxValue   int cells = columns * rows;   float[] resultPattern = new float[cells];   float maxScaler = maxValue / float(cells);   for (int i = 0; i < columns; i++) {     for (int j = 0; j < rows; j++) {       float patternValue;       switch(direction) {       case 0:         patternValue = (i + 1) * (j + 1) * maxScaler;         break;       case 1:         patternValue = (columns - i) * (j + 1) * maxScaler;         break;       case 2:         patternValue = (i + 1) * (rows - j) * maxScaler;         break;       default:         patternValue = (columns - i) * (rows - j) * maxScaler;         break;       }       resultPattern[j * columns + i] = patternValue;     }   }   return resultPattern; } // randomizations float[] randomPattern(float maxValue, int columns, int rows) {   int cells = columns * rows;   float[] resultPattern = new float[cells];   for (int i = 0; i < cells; i++) {     resultPattern[i] = random(maxValue);   }   return resultPattern; } float[] randomPattern(float minValue, float maxValue, int columns, int rows) {   int cells = columns * rows;   float[] resultPattern = new float[cells];   for (int i = 0; i < cells; i++) {     resultPattern[i] = random(minValue, maxValue);   }   return resultPattern; } float[] randomByRow(float maxValue, int columns, int rows) {   float[] resultPattern = new float[columns * rows];   for (int i = 0; i < rows; i++) {     float randomValue = random(maxValue);     for (int j = 0; j < columns; j++) {       resultPattern[i * columns + j] = randomValue;     }   }   return resultPattern; } float[] randomByRow(float minValue, float maxValue, int columns, int rows) {   float[] resultPattern = new float[columns * rows];   for (int i = 0; i < rows; i++) {     float randomValue = random(minValue, maxValue);     for (int j = 0; j < columns; j++) {       resultPattern[i * columns + j] = randomValue;     }   }   return resultPattern; } float[] randomByColumn(float maxValue, int columns, int rows) {   float[] resultPattern = new float[columns * rows];   for (int i = 0; i < columns; i++) {     float randomValue = random(maxValue);     for (int j = 0; j < rows; j++) {       resultPattern[j * columns + i] = randomValue;     }   }   return resultPattern; } float[] randomByColumn(float minValue, float maxValue, int columns, int rows) {   float[] resultPattern = new float[columns * rows];   for (int i = 0; i < columns; i++) {     float randomValue = random(minValue, maxValue);     for (int j = 0; j < rows; j++) {       resultPattern[j * columns + i] = randomValue;     }   }   return resultPattern; } // repeating patterns float[] repeatingPattern(FloatList pattern, boolean direction, int columns, int rows) {   int cells = columns * rows;   float[] resultPattern = new float[cells];   if (direction) {     for (int i = 0; i < cells; i++) {       resultPattern[i] = pattern.get(i % pattern.size());     }   } else {     int index = 0;     for (int i = 0; i < columns; i++) {       for (int j = 0; j < rows; j++) {         resultPattern[j * columns + i] = pattern.get(index % pattern.size());         index++;       }     }   }   return resultPattern; } // masks: "mutate" methods in GridLayer ignore negative values // so by setting some inputPattern values to negatives, we can set partial changes to a parameter array // "mask" functions don't create patterns themselves, they process previously created patterns... float[] singleColumnMask (float[] inputPattern, int openColumn, int columns, int rows) {   for (int i = 0; i < columns; i++) {     if (i != openColumn) {       for (int j = 0; j < rows; j++) {         inputPattern[j * columns + i] = -1;       }     }   }   return inputPattern; } float[] singleRowMask (float[] inputPattern, int openRow, int columns, int rows) {   for (int i = 0; i < rows; i++) {     if (i != openRow) {       for (int j = 0; j < columns; j++) {         inputPattern[i * columns + j] = -1;       }     }   }   return inputPattern; } float[] nthColumnMask (float[] inputPattern, int openNth, int offset, int columns, int rows) {   for (int i = 0; i < columns; i++) {     if ((i + offset) % openNth != 0) {       for (int j = 0; j < rows; j++) {         inputPattern[j * columns + i] = -1;       }     }   }   return inputPattern; } float[] nthRowMask (float[] inputPattern, int openNth, int offset, int columns, int rows) {   for (int i = 0; i < rows; i++) {     if ((i + offset) % openNth != 0) {       for (int j = 0; j < columns; j++) {         inputPattern[i * columns + j] = -1;       }     }   }   return inputPattern; } float[] nthMask (float[] inputPattern, int openNth, int offset, boolean direction, int columns, int rows) {   if (direction) {     for (int i = 0; i < columns * rows; i++) {       if ((i + offset) % openNth != 0) {         inputPattern[i] = -1;       }     }   } else {     for (int i = 0; i < rows; i++) {       for (int j = 0; j < columns; j++) {         if ((j * rows + i + offset) % openNth == 0) {           inputPattern[i * columns + j] = -1;         }       }     }   }   return inputPattern; }
2017.11.11: the version of the refactor that finally stuck - had to rewrite all of the two-dimensional arrays as single-dimensional arrays. It's a bit less conceptually elegant (since I think of the grids in rows and columns) but made it possible to make extensive use of arrayCopy() and solved lots of other problems and issues.
15 notes · View notes
djkrpt-blog · 6 years ago
Photo
Tumblr media
Stuck for inspiration? One trick is to just keep hitting the randomise button until something piques your interest - NI’s Massive has a whole host of randomising options too, such as keeping your oscillator values intact, handy if you want a melodic selection. Great for spot fx, atmospheres, noises, etc. #productiontips #nativeinstruments #massive #dnbproducer #randomise #random #randomisation #feelingluckypunk #atmosphere #fx #edmproducer #musicproductiontips #vsts #creativehack #inspiration #drumnbass #drumandbass #jungle #studionerd #logicpro #logicprox #abletonlive #randomvalues #techno #sounddesign #sounddesigner https://www.instagram.com/p/BtEjyzVlhCT/?utm_source=ig_tumblr_share&igshid=rz9de9py6ur2
0 notes
draegerit · 7 years ago
Text
Arduino Projekt: LED Weihnachtsbaum
Tumblr media
In diesem Beitrag möchte ich ein kleines Arduino Projekt zum Weihnachtsfest präsentieren. Das Layout des PCB habe ich selber erstellt und bereits im Tutorial Eigene PCBs mit Seeedstudio erstellen erläutert.
Tumblr media
PCBs von Seeedstudio.com
Benötige Bauelemente & Werkzeuge
Für das zusammenbauen verwende ich folgende Werkzeuge: Lötkolben, inkl.  Lötzinn ∅ 0,5mm Ständer hitzebständige Unterlage Seitenschneider Pinzette Für das PCB Layout benötige ich des Weiteren: 9 LEDs 5mm oder 3mm, (Farbe je nach eigener Wahl) 9 Widerstände a 220 Ohm 1 Piezo Buzzer 12 Pins einer Stiftleiste mit einem Reihenabstand von 2,54mm Für den Betrieb des PCBs wird benötigt: 12x Breadboardkabel, 20cm, männlich - weiblich 1x Arduino Nano Den Arduino Nano gibt es als "China clone" für schon knapp 4€ zu kaufen, wenn man jedoch den Originalen erwerben möchte muss man schon deutlich tiefer in die Tasche greifen. Beim kaufen eines "China clones" muss man darauf achten welcher Chip montiert ist. Hier gibt es einige Unterschiede obwohl alle die Bezeichnung "Arduino Nano v3.0" tragen. Für den Arduino Workshop habe ich den Arduino Nano v3.0 mit dem ATmega168  Chip und dem für diese Typen üblichen CH340G Chip verwendet. Dieser musste in der Arduino IDE "nur" unter Bootloader eingestellt werden und dann lief auch dieser zuverlässig. Testen der LEDs Bevor mit dem zusammenbauen begonnen wird, empfehle ich hier die LEDs auf die korrekte Funktion zu testen. Dieses kann mit einer Knopfzelle schnell erledigt werden. Oder aber man hat ein Messinstrument mit welchem man Dioden Testen kann hier wird eine geringe Spannung ausgegeben und die LED leuchtet auf. Auf ebay.de gibt es auch spezielle Geräte zum Testen von Leuchtdioden für schon knapp 3 Euro inkl. Versandkosten.
Hinweis zum Aufbau
Auf der Platine ist für jede LED ein kleines Symbol eingezeichnet wo man erkennen kann wie herum diese eingesteckt wird. In meinem Fall ist es nun das genau dieses Symbol um 180° verdreht ist somit wird die Kathode (der Minuspol) nach oben und die Anode (der Pluspol) nach unten eingesteckt.
Schritt 1 - Auflöten der LEDs
Als erstes wollen wir die LEDs einlöten.
Tumblr media
Lötaugen für die LEDs, Kathode - Anode Ich wähle hier 5mm LEDs in den Farben rot und gelb. Die LEDs werden mit der Kathode (kurzes Beinchen bzw. abgeflachte Seite) nach oben in die Löcher gesteckt und die Beinchen auf der Rückseite umgebogen.
Tumblr media
Aufbau einer LED Dieses hat den Vorteil das die LEDs nicht wieder rausrutschen können.
Tumblr media
Weihnachtsbaum einlöten der LEDs
Schritt 2 - Piezo Buzzer einlöten
Auf dem Piezo Buzzer ist ein kleines (+) Zeichen abgebildet dieses spielt beim einlöten keine Rolle.
Tumblr media
Piezo Buzzer Für den Piezo Buzzer sind zwei kleine Lötaugen auf der Platine welche mit "Buzzer" markiert sind, diese führen zu zwei Stifte welche im nächsten Schritt eingelötet werden.
Schritt 3 - Einlöten der Stiftleiste(n)
Die 12 Stiftleisten müssen in  1x 9er Stiftleiste (für die LEDs) 1x 2er Stiftleiste (für den Buzzer) 1x 1er Stift (für GND) mit einem Seitenschneider getrennt werden. Hier empfehle ich den Erwerb von Stiftleisten mit einer definierten Kerbe.
Tumblr media
Stiftleiste 2,54mm Es gibt die Stiftleisten auch mit einer glatten Kante, jedoch habe ich hier festgestellt das diese sich nur mit aller Vorsicht und einer feinen Säge vernünftig teilen lassen. Daher greife ich immer gerne auf die Abgebildeten Stiftleisten zurück. Die Stiftleisten lassen sich nicht umbiegen und daher hat man etwas "fummelarbeit" vor sich. Ich stapel mir immer etwas auf so das die Platine und die Stifte im rechten Winkel stehen, danach wird ein Stift angelötet.
Tumblr media
Platine mit Lötstiften Hat man dieses getan so kann man die restlichen Stifte bequem mit einer 3. Hand festlöten.
Schritt 4 - Einlöten der Widerstände
Die 9 Widerstände werden in die markierten (R1..R9) Löcher gesteckt und eingelötet.
Tumblr media
eingelötete, 220 Ohm Widerstände auf der Platine Bei einem Widerstand ist es egal wie herum dieser eingelötet wird, es ist jedoch ansehnlicher für den Betrachter wenn alle Widerstände in die gleiche Richtung eingelötet wurden.
Tumblr media
220 Ohm Widerstand Bei den Widerständen ist es wichtig das die Beinchen auf der Rückseite umgebogen werden, denn diese verrutschen sehr schnell.
Schritt 4 - anschließen der Breadboardkabel
Im vierten Schritt werden die Breadboardkabel angeschlossen ich verwende 20cm lange,  mit Stecker und Buchse. 
Tumblr media
Weihnachtsbaum mit Breadboardkabel  
Schritt 5 - Programmieren 
Die Melodie habe ich aus dem Sketch von AbhishekGhosh entnommen, dieser hat auf dem GitHub Repository https://github.com/AbhishekGhosh/Arduino-Buzzer-Tone-Codes/blob/master/Jingle-bells.ino  ein entsprechendes Arduino Sketch bereitgestellt.  Somit konnte ich dieses fast 1:1 übernehmen. Ich habe da nur einpaar Variablennamen, die Funktion zum abspielen der Melodie sowie einpaar modifier angepasst.  Es werden keine zusätzlichen Bibliotheken benötigt! Quellcode //LEDs an den digitalen Pins 2 bis 10 angeschlossen #define LED1 2 #define LED2 3 #define LED3 4 #define LED4 5 #define LED5 6 #define LED6 7 #define LED7 8 #define LED8 9 #define LED9 10 //Array mit den LEDs sowie dem Status der LED int leds = {{LED1,LOW}, {LED2,LOW}, {LED3,LOW}, {LED4,LOW}, {LED5,LOW}, {LED6,LOW}, {LED7,LOW}, {LED8,LOW}, {LED9,LOW}}; //Intervall zum ändern eines Status der LED //Wenn die LEDs öffters / schneller blinken sollen muss diese Variable kleiner werden ansonsten größer. const int LED_ACTION_INTERVALL = 750; //Variable zum speichern der letzten Ausführung. long lastLedAction =0; //Piezo Buzzer am digitalen PWM Pin 11 angeschlossen #define BUZZER 11 //Definieren der Töne #define C 2100 #define D 1870 #define E 1670 #define f 1580 #define G 1400 #define R 0 //reset //Melodie von Jingle Bells const int jingleBellsMelody = {E, E, E,R, E, E, E,R, E, G, C, D, E, R, f, f, f,f, f, E, E,E, E, D ,D,E, D, R, G ,R, E, E, E,R, E, E, E,R, E, G, C, D, E, R, f, f, f,f, f, E, E, E, G,G, f, D, C,R }; //Berechnen der Anzahl der Töne in der Melodie const int MAX_COUNT = sizeof(jingleBellsMelody) / 2; const int beat = 50; const long tempo = 10000; int rest_count = 100; int pause = 1000; void setup(){ //Initialisieren der LEDs als Ausgänge und mit dem Status LOW (AUS) for(int i=0;i 0) { //Prüfen ob die Zeit vom letzten ausführen eines LED blinkens kleiner als //die aktuelle Zeit + dem Intervall ist. if(lastLedAction //speichern der aktuellen Zeit lastLedAction = millis(); //erzeugen einer Zufallszahl von 0 bis 8 int randomValue = random(8); //lesen des Status aus dem Array mit den LEDs int status = leds; //Wenn der Status LOW / AUS ist dann soll er auf HIGH gewechselt werden. if(status == LOW){ leds = HIGH; } else { //Wenn der Status HIGH / AN ist dann soll auf LOW gewehcselt werden. leds = LOW; } //neues Auslesen des Status aus dem Array status = leds; //Setzen der LED mit dem neuen Status digitalWrite(leds, status); } //Abspielen der Melodie while (elapsed_time //Buzzer an digitalWrite(BUZZER,HIGH); //Pause von der länge des Tones durch 2 delayMicroseconds(tone_ / 2); // DOWN //Buzzer aus digitalWrite(BUZZER, LOW); //Pause von der länge des Tones durch 2 delayMicroseconds(tone_ / 2); //Speichern wielange der Ton dauerte elapsed_time += (tone_); } } else { // Reset for (int j = 0; j delayMicroseconds(duration); } } } void loop(){ long duration = beat * tempo; // Set up timing //Für jede Note aus der Melodie.... for (int i=0; i Read the full article
0 notes
askanything-online-blog · 8 years ago
Text
Content-Security-Policy with NONCE and Sub Resource Integrity
Content-Security-Policy with NONCE and Sub Resource Integrity
I am exploring ways in which I could/should use CSP and SRI for my website.
For my site I’m looking to use a CSP, something like this.
Content-Security-Policy: block-all-mixed-content; base-uri https://vasports.com.au; default-src 'self'; object-src 'none'; script-src 'strict-dynamic' 'nonce-RandomValue' 'unsafe-inline' https:; report-uri https://www.example.com/report;
NOTE: I used…
View On WordPress
0 notes
o-agassy · 7 years ago
Text
Rasa yang salah
Akhir-akhir ini aku menyaksikan cinta yang salah. Entah itu bisa disebut cinta atau rasa nyaman, aku belum sepenuhnya paham. Tapi yang jelas itu salah.
Mereka berdua bertemu pada sebuah acara diklat satu bulan, diasramakan, bersama menjalani kegiatan. Sebut saja Rani dan Roni.
Rani memang terkenal cantik di angkatannya. Sewajarnya laki-laki, pasti sempat akan bertanya pada teman-temanya, apakah Rani masih sendiri? 
Ternyata saat perkenalan satu angkatan, kita semua mengetahui bahwa Rani sudah tidak sendiri, bahkan ia sudah menikah.
Beberapa waktu berselang, munculah figur Roni didalam kelas.
Tidak tau dari mana asalnya, diperhatikan secara perlahan Roni selalu berdekatan dengan Rani. Baik tempat duduk maupun tempat makan.
Beberapa waktu juga selalu Roni mencari kesempatan untuk bersanding dengan Rani. Presentasi, atau perkara tempat duduk yang bersebelahan saat materi kelas. Mereka fine-fine saja untuk difoto berdua. 
Ceng-cengan ala mahasiswa pun masih terjadi, walaupun satu kelas sama-sama mengetahui bahwa Rani sudah mempunyai suami.
Ada satu waktu di malam minggu dimana mereka berdua memprakarsai nonton film dan karaoke diruang kelas, berdua lalu lama-lama berkumpul jadi banyak. Tidak hanya roni yang nampak nyaman, tapi boleh jadi Rani juga merasa nyaman.
Ah aku tak mau berkonklusi lebih lanjut.
Menurutku, hal ini adalah salah, dan sangat salah!
Rani sudah bersuami sah, dan seharusnya semua juga menghormatinya. Juga Roni salah. Kenapa seakan-akan dia tidak mempedulikan bahwa Rani sudah bersuami, dan harusnya dijauhi, minimal menjaga jarak. Pun juga satu kelas bisa jadi salah. Karena ikut memprovokasi mereka hingga menjadi nyaman satu sama lain.
Mungkin aku juga salah. Karena tidak mengingatkan mereka akan bahaya godaan setan tersebut.
Kita memang tidak saling mengenal satu sama lain secara mendalam. Tapi paling tidak ketidakbenaran ini juga tidak boleh dibiarkan begitu saja.
Apa jadinya rumah tangga hanya akan rusak dengan ujian seperti ini. Godaan setan tak akan pernah berhenti begitu saja ketika mengetahui kita sudah berucap akad sah nikah.
Aku jadi khawatir, akan pergaulan. Mengedepankan pertemanan sebagai hukum positif masyarakat yang malah bisa menjadi bumerang bagi diri sendiri, melewati hukum syari agama islam yang notabene selalu kita coba untuk tegakkan. Lalu dimanakah kita meletakkan iman kita? Naudzubillahimindzalik
Aku jadi takut, akan ujian tersebut.
Bogor, 27 Juli 2018 | A. Firmansyah
2 notes · View notes
o-agassy · 7 years ago
Text
Tulisan : Kebenaran itu urusan Dapur
Penyanyi itu menyanyikan lagunya dengan sangat apik. Nada dan suaranya pas. Begitu memukau pendengar. Serasa lantunan lirik tersebut membawa kebaikan kepada pendengar. Mengusir perasaan duka jauh-jauh. Bersama lagunya, kita berusaha untuk melupakah jenuh. Itu adalah kebaikan, versi mereka, para penyanyi.
Tahukah kita mengenai perbedaan kebaikan dan kebenaran?
Jika lagu yang dibawakan oleh penyanyi itu adalah kebaikan, maka dimana letak kebenarannya?
Mereka menyanyi dengan syair dan nada. Mereka mengkombinasikan instrumen dengan kunci-kunci sederhana. Mereka tidak menyatakan kunci instrumen musik didalam syair lagu.
Tidak perlu mengatakannya. Cukup syair lagu serta lantunan nada yang mengirinya. Menyatu, menciptakan harmonisasi keindahan didalamnya.
Mengapa kunci instrumen musik tidak ditampilkan bersamaan dengan syair dan lagu?
Kunci instrumen itu adalah urusan dapur. Urusan dapur tidak perlu dibawa ke ruang tamu.
Ibarat sebuah warteg. Kunci instrumen itu adalah bumbu masak serta adonan masakan, yang hanya diketahui oleh ibu penjual warteg.
Pernah menemukan kah sebuah warteg menampilkan susunan resep dalam menunya? Satu sendok merica + dua sendok minyak ijen? Tidak saya rasa.
Resep serta bumbu adalah urusan dapur, dan urusan dapur biarlah tetap berada di dapur, tidak perlu dibawa ke etalase penyajian menu makanan. Bumbu resep adalah sebuah kebenaran yang menyajikan keindahan, dan masing-masing mempunyai kebenarannya sendiri-sendiri, masing-masing warung tidaklah sama. Biarlah yang tersaji di etalase adalah sebuah keindahan penempatan makanan, kenikmatan serta manfaat dari makanan itu sendiri.
Itulah kehidupan. Tak usah menceritakan kisah pilu hidup kita kepada orang-orang. Tidak semuanya akan mau mengerti permasalahan kita. Malahan bisa jadi cerita kita bisa menjadi bumerang untuk saat-saat keterpurukan.
Boleh jadi juga mengenai kebenaran kita juga berbeda. Keyakinan kita atas kebenaran suatu hal mungkin saja berbeda dengan kebenaran yang diyakini orang lain. Jika terus diperdebatkan, saya rasa tidak akan pernah ketemu ujungnya. Karena setiap masakan mempunyai kebenarannya sendiri-sendiri, tergantung mau memasak dengan bumbu yang asin atau manis. Tidak ada yang salah.
Jadi, cukup sajikan keindahan dan kebermanfaatan dari kita untuk mereka. Tak perlu mereka memahami kebenaran dari diri kita. Karena kebenaran kita, bisa saja berbeda.
Bogor, 25 Juni 2018 | A. Firmansyah
3 notes · View notes
o-agassy · 7 years ago
Text
Cerpen : Ragu
Hingga kapan aku akan ragu untuk menjemputmu?
Detik ini aku sudah menyelesaikan sekolah, dan alhamdulilah bekerja juga sudah.
Secara perhitungan matematis berdasar regulasi pemerintah, aku pun sudah sah-sah saja untuk melangsungkan pernikahan.
Secara syarat syari agama islam, insyaAllah juga sudah. Sudah aqil baligh dan mempunyai cukup ilmu untuk melanjutkan tahapan berbakti berikutnya.
Lalu mengapa aku masih ragu? Sebenarnya apa yang sedang aku tunggu?
Apakah aku hanya akan memperhitungkan probabilitas kesenangan masa muda semata? Belum berkunjung kesini, belum berkunjung kesana. Atau aku belum beli ini, belum beli itu. Dunia memang tak akan pernah usai jika kita menghitung berdasar keinginan, bukan kebutuhan. Banyak bisikan yang selalu membuatku ragu untuk mejemputmu.
Jadi bersabarlah, mungkin aku masih takut kehilangan masa mudaku. Tapi jika boleh jujur, aku juga tidak ingin menyerah untuk memperjuangkanmu.
Bogor, 27 Juli 2018 | A.Firmansyah
1 note · View note
o-agassy · 7 years ago
Text
Menemukan?
Lalu masihkah kita menomorsatukan paras dibanding ketiga syarat yang lain?
Pandangan orang mungkin memang berbeda-beda dalam memilih istri. Mungkin saja ada yang menomor-satukan paras dari pada Agama, Nasab, dan Harta.
Sayangnya pada saat muda, kita sering ikut oleh hiruk pikuk dunia maya. Filter foto dan kecanggihan kamera seraya menambah list daftar tunggu gebetan yang ingin kita jajaki.
Yuk coba belajar. Mengetahui bahwa rumah tangga tak akan cukup dengan paras yang anggun. Lebih membutuhkan seorang istri yang ber-adab, ber-pendidikan, mengerti tanggung jawab, serta mengerti akan apa arti cantik yang sesungguhnya.
Cantiknya, hanya milik suami sah nya. Bukan untuk diumbar kepada orang yang bukan mahramnya.
Karena hidup adalah pilihan, maka selamat memilih!
Dan Saya memilih untuk tidak mencari calon istri saya dari media. Saya mencarinya melalui dunia nyata, dan menyaksikan mengenai kehidupannya.
1 note · View note
o-agassy · 7 years ago
Text
Definisi Bekerja
Banyak definisinya. Ada yang bilang bekerja adalah passion. Ada pula yang bilang bekerja adalah proses untuk mengungkap jati diri kita sebenarnya.
Jauh sebelum definisi itu tercapai, ada banyak definisi lain yang bahkan tak terfikirkan oleh kita.
Disini, jakarta. Mereka bekerja tak kenal definisi passion. Mereka bekerja tak kenal definisi mimpi. Yang mereka kenal adalah definisi bekerja untuk memenuhi kebutuhan sehari-hari. Tak butuh passion. Yang menghasilkan yang akan ditempuh. Seberat dan sepayah apapun itu. Mereka coba untuk merengkuh. Dan mereka betah, karena butuh.
1 note · View note
o-agassy · 8 years ago
Photo
Tumblr media
Karakter
Persepsi dan tindakan adalah sebuah cerminan dari karakter seseorang. Jika dianalogikan adonan, maka karakter akan terbentuk berdasarkan wadah, lingkungan dimana kita bersosial dan tumbuh berkembang.
Roti akan berbentuk oval jika loyang yang digunakan juga berbentuk oval. Roti akan berbentuk kotak, jika loyang yang digunakan juga berbentuk kotak.
Adapun kita berteman dengan penjual minyak, maka secara tidak kita sadari akan juga kita berbau minyak. Dan begitu pula sebaliknya
Maka, bertemanlah dengan sebanyak-banyak nya teman. Namun, pintar-pintarlah dalam memilih kawan. Karena karaktermu, adalah cerminan dari lingkungan mu.
Surabaya, 19 Agustus 2017 | Firmansyah
1 note · View note
o-agassy · 7 years ago
Text
Aku, bukan kamu
Alangkah indahnya persahabatan diwarnai dengan saling bahu-membahu dalam membantu urusan.
Adalah mereka yang selalu berusaha memberikan terbaik buat kita. Cinta juga enggak, tapi lebih kepada konsep "untuk sahabatku aku tak mau yang abu-abu"
Namun terkadang kita lupa, bahwa yang menjalaninya adalah dia, bukan kita.
Kita tidak bisa memaksakan kehendak atas dirinya. Dirinya berdaulat atas apa yang akan terjadi pada kehidupannya. Tugas kita cukup hanya sampai menyarankan, bukan memaksakan.
Kadang kita lupa, bahwa peran seorang sahabat tidak lebih kecil dari pada peran pendukung, bukan peran utama.
Tapi setidaknya, kita berucap terima kasih. Paling tidak ia masih mau peduli terhadap diri kita yang serba kurang ini.
0 notes
draegerit · 7 years ago
Text
Arduino Projekt: LED Weihnachtsbaum
Tumblr media
In diesem Beitrag möchte ich ein kleines Arduino Projekt zum Weihnachtsfest präsentieren. Das Layout des PCB habe ich selber erstellt und bereits im Tutorial Eigene PCBs mit Seeedstudio erstellen erläutert.
Tumblr media
PCBs von Seeedstudio.com
Benötige Bauelemente & Werkzeuge
Für das zusammenbauen verwende ich folgende Werkzeuge: Lötkolben, inkl.  Lötzinn ∅ 0,5mm Ständer hitzebständige Unterlage Seitenschneider Pinzette Für das PCB Layout benötige ich des Weiteren: 9 LEDs 5mm oder 3mm, (Farbe je nach eigener Wahl) 9 Widerstände a 220 Ohm 1 Piezo Buzzer 12 Pins einer Stiftleiste mit einem Reihenabstand von 2,54mm Für den Betrieb des PCBs wird benötigt: 12x Breadboardkabel, 20cm, männlich - weiblich 1x Arduino Nano Den Arduino Nano gibt es als "China clone" für schon knapp 4€ zu kaufen, wenn man jedoch den Originalen erwerben möchte muss man schon deutlich tiefer in die Tasche greifen. Beim kaufen eines "China clones" muss man darauf achten welcher Chip montiert ist. Hier gibt es einige Unterschiede obwohl alle die Bezeichnung "Arduino Nano v3.0" tragen. Für den Arduino Workshop habe ich den Arduino Nano v3.0 mit dem ATmega168  Chip und dem für diese Typen üblichen CH340G Chip verwendet. Dieser musste in der Arduino IDE "nur" unter Bootloader eingestellt werden und dann lief auch dieser zuverlässig. Testen der LEDs Bevor mit dem zusammenbauen begonnen wird, empfehle ich hier die LEDs auf die korrekte Funktion zu testen. Dieses kann mit einer Knopfzelle schnell erledigt werden. Oder aber man hat ein Messinstrument mit welchem man Dioden Testen kann hier wird eine geringe Spannung ausgegeben und die LED leuchtet auf. Auf ebay.de gibt es auch spezielle Geräte zum Testen von Leuchtdioden für schon knapp 3 Euro inkl. Versandkosten.
Hinweis zum Aufbau
Auf der Platine ist für jede LED ein kleines Symbol eingezeichnet wo man erkennen kann wie herum diese eingesteckt wird. In meinem Fall ist es nun das genau dieses Symbol um 180° verdreht ist somit wird die Kathode (der Minuspol) nach oben und die Anode (der Pluspol) nach unten eingesteckt.
Schritt 1 - Auflöten der LEDs
Als erstes wollen wir die LEDs einlöten.
Tumblr media
Lötaugen für die LEDs, Kathode - Anode Ich wähle hier 5mm LEDs in den Farben rot und gelb. Die LEDs werden mit der Kathode (kurzes Beinchen bzw. abgeflachte Seite) nach oben in die Löcher gesteckt und die Beinchen auf der Rückseite umgebogen.
Tumblr media
Aufbau einer LED Dieses hat den Vorteil das die LEDs nicht wieder rausrutschen können.
Tumblr media
Weihnachtsbaum einlöten der LEDs
Schritt 2 - Piezo Buzzer einlöten
Auf dem Piezo Buzzer ist ein kleines (+) Zeichen abgebildet dieses spielt beim einlöten keine Rolle.
Tumblr media
Piezo Buzzer Für den Piezo Buzzer sind zwei kleine Lötaugen auf der Platine welche mit "Buzzer" markiert sind, diese führen zu zwei Stifte welche im nächsten Schritt eingelötet werden.
Schritt 3 - Einlöten der Stiftleiste(n)
Die 12 Stiftleisten müssen in  1x 9er Stiftleiste (für die LEDs) 1x 2er Stiftleiste (für den Buzzer) 1x 1er Stift (für GND) mit einem Seitenschneider getrennt werden. Hier empfehle ich den Erwerb von Stiftleisten mit einer definierten Kerbe.
Tumblr media
Stiftleiste 2,54mm Es gibt die Stiftleisten auch mit einer glatten Kante, jedoch habe ich hier festgestellt das diese sich nur mit aller Vorsicht und einer feinen Säge vernünftig teilen lassen. Daher greife ich immer gerne auf die Abgebildeten Stiftleisten zurück. Die Stiftleisten lassen sich nicht umbiegen und daher hat man etwas "fummelarbeit" vor sich. Ich stapel mir immer etwas auf so das die Platine und die Stifte im rechten Winkel stehen, danach wird ein Stift angelötet.
Tumblr media
Platine mit Lötstiften Hat man dieses getan so kann man die restlichen Stifte bequem mit einer 3. Hand festlöten.
Schritt 4 - Einlöten der Widerstände
Die 9 Widerstände werden in die markierten (R1..R9) Löcher gesteckt und eingelötet.
Tumblr media
eingelötete, 220 Ohm Widerstände auf der Platine Bei einem Widerstand ist es egal wie herum dieser eingelötet wird, es ist jedoch ansehnlicher für den Betrachter wenn alle Widerstände in die gleiche Richtung eingelötet wurden.
Tumblr media
220 Ohm Widerstand Bei den Widerständen ist es wichtig das die Beinchen auf der Rückseite umgebogen werden, denn diese verrutschen sehr schnell.
Schritt 4 - anschließen der Breadboardkabel
Im vierten Schritt werden die Breadboardkabel angeschlossen ich verwende 20cm lange,  mit Stecker und Buchse. 
Tumblr media
Weihnachtsbaum mit Breadboardkabel  
Schritt 5 - Programmieren 
Die Melodie habe ich aus dem Sketch von AbhishekGhosh entnommen, dieser hat auf dem GitHub Repository https://github.com/AbhishekGhosh/Arduino-Buzzer-Tone-Codes/blob/master/Jingle-bells.ino  ein entsprechendes Arduino Sketch bereitgestellt.  Somit konnte ich dieses fast 1:1 übernehmen. Ich habe da nur einpaar Variablennamen, die Funktion zum abspielen der Melodie sowie einpaar modifier angepasst.  Es werden keine zusätzlichen Bibliotheken benötigt! Quellcode //LEDs an den digitalen Pins 2 bis 10 angeschlossen #define LED1 2 #define LED2 3 #define LED3 4 #define LED4 5 #define LED5 6 #define LED6 7 #define LED7 8 #define LED8 9 #define LED9 10 //Array mit den LEDs sowie dem Status der LED int leds = {{LED1,LOW}, {LED2,LOW}, {LED3,LOW}, {LED4,LOW}, {LED5,LOW}, {LED6,LOW}, {LED7,LOW}, {LED8,LOW}, {LED9,LOW}}; //Intervall zum ändern eines Status der LED //Wenn die LEDs öffters / schneller blinken sollen muss diese Variable kleiner werden ansonsten größer. const int LED_ACTION_INTERVALL = 750; //Variable zum speichern der letzten Ausführung. long lastLedAction =0; //Piezo Buzzer am digitalen PWM Pin 11 angeschlossen #define BUZZER 11 //Definieren der Töne #define C 2100 #define D 1870 #define E 1670 #define f 1580 #define G 1400 #define R 0 //reset //Melodie von Jingle Bells const int jingleBellsMelody = {E, E, E,R, E, E, E,R, E, G, C, D, E, R, f, f, f,f, f, E, E,E, E, D ,D,E, D, R, G ,R, E, E, E,R, E, E, E,R, E, G, C, D, E, R, f, f, f,f, f, E, E, E, G,G, f, D, C,R }; //Berechnen der Anzahl der Töne in der Melodie const int MAX_COUNT = sizeof(jingleBellsMelody) / 2; const int beat = 50; const long tempo = 10000; int rest_count = 100; int pause = 1000; void setup(){ //Initialisieren der LEDs als Ausgänge und mit dem Status LOW (AUS) for(int i=0;i 0) { //Prüfen ob die Zeit vom letzten ausführen eines LED blinkens kleiner als //die aktuelle Zeit + dem Intervall ist. if(lastLedAction //speichern der aktuellen Zeit lastLedAction = millis(); //erzeugen einer Zufallszahl von 0 bis 8 int randomValue = random(8); //lesen des Status aus dem Array mit den LEDs int status = leds; //Wenn der Status LOW / AUS ist dann soll er auf HIGH gewechselt werden. if(status == LOW){ leds = HIGH; } else { //Wenn der Status HIGH / AN ist dann soll auf LOW gewehcselt werden. leds = LOW; } //neues Auslesen des Status aus dem Array status = leds; //Setzen der LED mit dem neuen Status digitalWrite(leds, status); } //Abspielen der Melodie while (elapsed_time //Buzzer an digitalWrite(BUZZER,HIGH); //Pause von der länge des Tones durch 2 delayMicroseconds(tone_ / 2); // DOWN //Buzzer aus digitalWrite(BUZZER, LOW); //Pause von der länge des Tones durch 2 delayMicroseconds(tone_ / 2); //Speichern wielange der Ton dauerte elapsed_time += (tone_); } } else { // Reset for (int j = 0; j delayMicroseconds(duration); } } } void loop(){ long duration = beat * tempo; // Set up timing //Für jede Note aus der Melodie.... for (int i=0; i Read the full article
0 notes