Tengu met Arduino uno

Als U een gezamenlijk project wil starten of aan projecten van anderen mee wilt werken.
Berichten: 79
Geregistreerd: 08 Apr 2013, 20:16
Woonplaats: Lokeren

Re: Tengu met Arduino uno

Berichtdoor Sembot » 19 Okt 2013, 13:00

Code: Alles selecteren
/*
* Monitor for sound sensor
*/
int potPin = A2;                              // micro op pin A2 aansluiten
int ledPin = 13;                               // Led aansluiten op Pin 13
int val = 0;                                     // val = variabele met de beginwaarde 0
int amp = 0;                                   // amp = variabele met de beginwaarde 0
void setup() {
pinMode(ledPin, OUTPUT);               // zet de ledPin 13 als output
}
void loop() {
val = analogRead(potPin);              // val lees de waarde als er op potPin iets of niets te horen is
amp = (val >= 512) ? val - 512 : 512 - val; // Is hetzelfde als
                                                                 // if (val > = 512) {
                                                                 // amp = val - 512;
                                                                 // } else {
                                                                 // amp = 512 - val;}

if (amp > 400) {                                         // als amp groter is dan 400
digitalWrite(ledPin, HIGH);                           // schrijf naar de uitgang 13 en laat de led aangaan
delay(20);                                                  // wacht 20msec
}
else {                                                        // anders
digitalWrite(ledPin, LOW);                           // schrijf naar de uitgang en laat de led uitgaan
}
}

Advertisement

Berichten: 79
Geregistreerd: 08 Apr 2013, 20:16
Woonplaats: Lokeren

Re: Tengu met Arduino uno

Berichtdoor Sembot » 19 Okt 2013, 13:11

Code: Alles selecteren
int idx = 0;                                                             // idx variabele met waarde 0
unsigned long last;                                                  // last kan een waarde zijn van 0 tot 4,294,967,295 (2^32 - 1) hebben
void setup() {
last = millis();                                                         // Last = millis(); // last wordt gevuld met millis()
                                                                             // Millis laat zien hoeveel milliseconde het Arduino board
                                                                             // in werking is na de start van het
                                                                             // lopende programma. De weergave is een long variabele.
pinMode( 9, OUTPUT );                                            // op pin 9 kom te aansluiting van de matrix Pin 13 col 1
pinMode( 10, OUTPUT );                                          // op pin 10 kom te aansluiting van de matrix Pin 3 col 2
pinMode( 11, OUTPUT );                                          // op pin 11 kom te aansluiting van de matrix Pin 4 or 11 col 3
pinMode( 12, OUTPUT );                                          // op pin 12 kom te aansluiting van de matrix Pin 10 col 4
pinMode( 13, OUTPUT );                                          // op pin 13 kom te aansluiting van de matrix Pin 6 col 5
pinMode( 2, OUTPUT );                                            // op pin 2 kom te aansluiting van de matrix Pin 9 row 1
pinMode( 3, OUTPUT );                                            // op pin 3 kom te aansluiting van de matrix Pin 14 row 2
pinMode( 4, OUTPUT );                                            // op pin 4 kom te aansluiting van de matrix Pin 8 row 3
pinMode( 5, OUTPUT );                                            // op pin 5 kom te aansluiting van de matrix Pin 12 or 5 row 4
pinMode( 6, OUTPUT );                                            // op pin 6 kom te aansluiting van de matrix Pin 1 row 5
pinMode( 7, OUTPUT );                                            // op pin 7 kom te aansluiting van de matrix Pin 7 row 6
pinMode( 8, OUTPUT );                                            // op pin 8 kom te aansluiting van de matrix Pin 2 row 7
for( int r = 0; r < 7; r++) {                                     // loop alle regels door van 0-6
digitalWrite( r + 2, LOW );                                       // zet alle digitale pinnen van 2-8 op 0
                                                                             // Dit zijn alle rij aansturingen.
}
for( int c = 0; c < 5; c++) {                                    // loop alle kolommen door van 0-4
digitalWrite( c + 9, HIGH);                                      // zet alle digitale pinnen van 9-13 op 0.
                                                                             // Dit zijn alle kolom aansturingen.
}
}
byte leds[7][5];                                                      // een led array 7X5 leds = 35leds
void setPattern( byte pattern[20][5], int idx ) {         // functie: setPattern
                                                                             // kopieer het patroon voor uit de tabel pattern
                                                                             // [20regels][5kolommen]naarde leds
                                                                             // pattern bevat meerdere patronen. Het begin
                                                                             // van een patroon wordt aangegeven door idx
for( int r =0; r < 7; r++) {                                      // loop alle regels door van 0-6
for( int c = 0; c < 5; c++) {                                    // loop alle kolommen door van 0-4
leds[r][c] = pattern[r + idx][c];                               // kopieer pattern naar leds
                                                                             // Dit is een functie die een patroon kopieert
                                                                             // uit de grote tabel met alle plaatjes naar de LEDS.
                                                                             // Het startpunt in de grote tabel wordt aangegeven door idx.
}
}
}
void draw() {                                                         // Functie : draw
for( int r=0; r < 7; r ++ ) {                                    // voor elke regel van 0-6
digitalWrite( r + 2, HIGH );                                     // zet deze pin op HOOG
                                                                            // zodat evt een led aangezet kan worden
for( int c=0; c < 5; c ++ ) {                                   // voor elke kolom van 0-4
digitalWrite( 13 - c, ( leds[r][c] == 1 ? LOW : HIGH ));
                                                                            // zet de LED aan of uit afhankelijk van het patroon. M.a.w.
                                                                            // Als in de leds tabel op kruispunt [r][c] een 1 (=HIGH) staat
                                                                            // schrijf dan een 0 (=LOW) naar de desbetreffende kolom.
                                                                            // Op deze wijze worden alle LEDS in deze kolom waarbij
                                                                            // de regel op HIGH staat voorzien van een spanning waardoor
                                                                            // de LED zal oplichten. Als de Kolom een waarde HIGH zou krijgen,
                                                                            // dan is zowel de regel als de kolom op dat kruispunt HOOG en loopt
                                                                            // er geen spanning door de LED en zal dus niet oplichten.
}
delayMicroseconds(900);
digitalWrite( r + 2, LOW );                                      // Zet de regel weer op LOW
                                                                            // Op deze wijze wordt de hele matrix doorgelopen.
}
}
void loop() {
if ( millis() - last > 400 ) {
idx = (idx == 0 ? 7 : 0);
last = millis();
}
byte tmp[14][5] = {
{ 0,0,0,0,0},
{ 0,1,0,1,0},
{ 0,0,0,0,0},
{ 0,1,1,1,0},
{ 0,1,0,1,0},
{ 0,1,1,1,0},
{ 0,0,0,0,0},
{ 0,0,0,0,0},
{ 0,1,0,1,0},
{ 0,0,0,0,0},
{ 0,0,0,0,0},
{ 0,1,1,1,0},
{ 0,0,0,0,0},
{ 0,0,0,0,0},
};
setPattern( tmp, idx );
draw();
}


Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Tengu met Arduino uno

Berichtdoor nicoverduin » 19 Okt 2013, 16:13

Zet nu die code voor het geluid er maar in zoals eerder aangegeven.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 79
Geregistreerd: 08 Apr 2013, 20:16
Woonplaats: Lokeren

Re: Tengu met Arduino uno

Berichtdoor Sembot » 19 Okt 2013, 21:41

Hai Nico,

Alles werkt

Als ik het program inlaad krijg ik het onderste patroon te zien ( dit met de mond dicht ) als er geluid komt veranderd het patroon door het eerste patroon en als het signaal luid genoeg is verdwijn ook de middelste led ( gaat uit ) dus daar moet ik nog effe aan sleutelen , als ik de waarde van amp veranderd ( verminderd naar 200 ) verbeterd het al een beetje

Ik denk dat dit te maken geeft met de versterker van de microfoon , de microfoon wordt alleen versterkt door een transistor het was beter geweest als ik de schakeling maakte met een LM386

Op de foto's zie je de beide patronen maar het geluid is nog te zwak ( moeder is anders kwaad als ik te hard roep ,TV speelt he )

Heb vanmiddag alles op een opsteek experimenteer printje gebouwd zodat alles wat compact is

Alle ben al wreed content zulle dank daarvoor

mvg
Erwin

Berichten: 79
Geregistreerd: 08 Apr 2013, 20:16
Woonplaats: Lokeren

Re: Tengu met Arduino uno

Berichtdoor Sembot » 19 Okt 2013, 22:06

foto1.jpg
foto1
foto2
foto1.jpg (15.42 KiB) 7644 keer bekeken

Berichten: 79
Geregistreerd: 08 Apr 2013, 20:16
Woonplaats: Lokeren

Re: Tengu met Arduino uno

Berichtdoor Sembot » 19 Okt 2013, 22:14

Hai ,

De tweede foto lukt mij niet dat is deze waar de mond een streep is

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Tengu met Arduino uno

Berichtdoor nicoverduin » 19 Okt 2013, 23:29

Nu kun je de tabel uitbreiden met meerdere gezichten en dan het verschillende gezichten voor verschillende volume nivo's gebruiken.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 79
Geregistreerd: 08 Apr 2013, 20:16
Woonplaats: Lokeren

Re: Tengu met Arduino uno

Berichtdoor Sembot » 24 Okt 2013, 20:13

Hai ,


Was effe vergeten om je nog eens te bedanken voor de fijn support , eindelijk iemand die je helpt inplaats van 10 berichten lang te zuren over waarom en hoeda en kijk op google eens enz

Bedankt Nico en tot werkens

Nu doen we op ons gemak verder

mvg
Erwin

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Tengu met Arduino uno

Berichtdoor nicoverduin » 24 Okt 2013, 23:47

Graag gedaan
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Vorige

Terug naar Gezamenlijke projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 8 gasten