Stap 1: beschrijving
Dit specifieke project maakt gebruik van de Arduino Pro-mini board, die een zeer klein formaat heeft en kan worden aangesloten met brood bord compatibele aansluitingen. Het bord wordt geleverd met ATMEGA128 of ATMEGA328 controller erin die met een frequentie van het kristal van 8MHz of 16MHz werkt. De Arduino Pro-mini bestuur heeft digitaal pinnen gemarkeerd als 2, 3, 4 tot 13. In een Arduino board sommige van de digitale pinnen kunnen worden geconfigureerd als analoge output pinnen en er zijn ook speciale analoge input pinnen die kunnen worden gebruikt voor spanning sensing toepassingen.
(check de bovenstaande foto's)
Aangezien de arduino Pro-mini bestuur geen circuitary heeft voor het interfacing met de seriële poort of de USB-poort van de PC, is een externe USB-naar-TTL converter bestuur nodig om verbinding te maken met de PC. Dit apparaat helpt bij het programmeren van de arduino board en helpt ook in de seriële communicatie met de USB-poort van de PC.
Voor basiskennis van Arduino, kunt u gaan aan dit project, controleren hoe aan de slag met de arduino en uitproberen van alle dingen die daar besproken. De Arduino Pro-mini bestuur heeft 8 analoge input pinnen gemarkeerd als A0, A1 tot de A7. Ze zijn eigenlijk de ingangskanalen aan de ingebouwde ADC van de ATMEGA328 die kunnen lezen van de analoge waarde en hen omzetten in het digitale equivalent. Sensing toepassingen die de vereiste analoge invoer pin zal worden aangesloten op een spanning die moet worden gelezen in normale analoge spanning. Stel dat de situatie waarin de analoge pin niet opvolgende middellage wordt overgelaten. De spanning aan de pin is niet gedefinieerd en vandaar wanneer lezen met behulp van de ADC-de digitale uitgang ook zullen een ongedefinieerde willekeurige waarde. Dit is de fundamentele methode waarbij een willekeurig getal is verkregen.
Het eerste getal verkregen van de hardware wordt genoemd een 'willekeurige seed'. Dit willekeurige zaad wordt dan toegepast op algoritmen genaamd willekeurig getal genereren van algoritme dat tot een willekeurige leiden kan nummer die binnen een opgegeven bereik. Er zijn ingebouwde functies in de Arduino IDE die helpt bij het genereren van willekeurige getallen. Dit specifieke project maakt gebruik van twee functies, namelijk randomSeed() en random() en de details van de functie worden besproken;
randomSeed()
randomSeed() initialiseert de pseudo-willekeurige nummer generator, veroorzakend het om te beginnen op een willekeurig punt in de willekeurige volgorde. Deze functie heeft een parameter die bepaalt vanaf welk punt in de reeks moet de willekeurig nummer generatie begint. Om te initialiseren van de pseudo-willekeurige nummer generator met een nieuwe reeks elke keer, moet de waarde als de parameter ook anders.
Deze bijzondere code leest een willekeurige waarde van het analoge invoer pin A0 die los is gelaten zodat telkens als de code wordt uitgevoerd dat kan het genereren van verschillende reeks willekeurige getallen.
Random()
De functie random() wordt gebruikt voor het genereren van pseudo-willekeurige nummer dat valt in een opgegeven bereik. De functie is altijd na het aanroepen van de functie randomSeed() aangeroepen. Deze functie heeft twee parameters, waarvan de eerste is de laagste vereiste waarde en de tweede is de grootste gewenst.waard.
DE CODE
De code die is geschreven voor dit project wordt geïnitialiseerd pseudo-willekeurige nummer generator met een willekeurige waarde lezen vanaf de analoge input pin A0 en maakt gebruik van de functie randomSeed(). De functie die wordt gebruikt om te lezen de waarde van A0 is analogRead() functie die reeds in de vorige projecten over het gebruik van de analoge ingang en analoge uitgang van de Arduino board, het gebruik van Arduino om sensor-waardes weer te geven, Hoe maak je dynamische sensor weergeven met behulp van Arduino besproken is, Hoe te slaan sensor-waardes in de EEPROM van de Arduino.
De functie random() wordt vervolgens gebruikt voor het genereren van een pseudo-willekeurige nummer en wordt verzonden naar het venster Serial monitor met behulp van de functies Serial.begin() en Serial.write() die reeds in eerdere projecten over hoe dit te doen van seriële communicatie met de Arduino, Hoe te verzenden en ontvangen van seriële data met behulp van arduino besproken zijn, hoe dat te doen seriële debuggen met de Arduino. De code gloeit ook een LED met willekeurige evenveel variëren van zijn helderheid door het schrijven van dezelfde waarde aan op de analoge uitgang pin waar de LED is aangesloten.
Als de codering is voltooid kan men verifiëren en uploaden van de code naar de Arduino board zoals uiteengezet in het project hoe aan de slag met de Arduino. De code zal continu het genereren van willekeurige getallen en kan men waarnemen hen met behulp van seriële monitor zoals uiteengezet in het project over Hoe te doen seriële debuggen met de Arduino.