Zwak branden van leds.

Hardware geleverd door Arduino
Berichten: 12
Geregistreerd: 27 Dec 2016, 08:36

Zwak branden van leds.

Berichtdoor mamekedi » 27 Dec 2016, 12:29

Hallo Allemaal,

Ik heb een probleem met te zwak branden van leds.
Ik heb onderstaande tutorial gevolgd voor het laten branden van leds.
Dit is prima gegaan de leds en sterkte van de leds werken naar behoren.

Nu heb een temperature tutorial gevolgd wat ook prima is gegaan.

http://www.tweaking4all.nl/hardware/ard ... ur-sensor/

Nu wil ik daar 2 leds toevoegen.
Als ik de code van de tutorial toevoeg branden de leds
heel zwak of niet, het lijkt wel of ze te weinig stroom krijgen, ik zit met usb aangesloten via een laptop.


Hardware:

arduino megaboard
arduino netwerk shield
temperature sensor DS18B20


Tutorial voor de leds:

Code: Alles selecteren

void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}



Advertisement

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

Re: Zwak branden van leds.

Berichtdoor nicoverduin » 27 Dec 2016, 12:57

Vergeet je niet de pinmode te zetten voor de andere leds?
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Zwak branden van leds.

Berichtdoor Koepel » 27 Dec 2016, 12:59

Vooral het Ethernet Shield heeft vrij veel stroom nodig. Ik dacht zo'n 150 tot 200mA. Een laptop geeft soms niet de volle 5V en 500mA op de USB connectors.
Heb je een losse adapter, bijvoorbeeld van 7.5 of 9V ? Om daarmee het Mega board te voeden.

Over het algemeen komt een zwak brandende led door het vergeten van de pinMode( ..., OUTPUT);
Of misschien heb je pin 0 of 1 gebruikt of pin 4 of 10 of 50...53. Die pinnen zijn al in gebruik.
Arduino Mega 2560 pinmapping : http://www.pighixxx.com/test/portfolio-items/mega/.
Misschien heb je een heel goedkoop USB kabeltje ?

Het is me niet helemaal duidelijk wat je precies hebt. Wat voor leds gebruik je ? Als je RGB leds gebruikt, dan graag een link naar waar je ze gekocht hebt. Welke weerstand gebruikt je voor de leds ? Welke pinnen gebruik je ? Wat is je volledige sketch ? Zijn de andere leds ook zwak ? (en zo heb ik nog veel meer vragen).

(nicoverduin was me voor met die pinMode(), maar ik plaats mijn reactie toch maar)

Berichten: 12
Geregistreerd: 27 Dec 2016, 08:36

Re: Zwak branden van leds.

Berichtdoor mamekedi » 27 Dec 2016, 14:21

Hoi Koepel,

ik zal eerst even een adapter gebruiken.
de weerstanden zijn 220 ohm

Bedankt voor je reactie

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

Re: Zwak branden van leds.

Berichtdoor nicoverduin » 27 Dec 2016, 16:00

Zit die pinmode er dan in de setup() voor elke output pin? Ik kan me eigenlijk niet voorstellen dat het wat anders is. Anders had je allang rook uit de chip gehad...
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 12
Geregistreerd: 27 Dec 2016, 08:36

Re: Zwak branden van leds.

Berichtdoor mamekedi » 27 Dec 2016, 18:43

nicoverduin schreef:Zit die pinmode er dan in de setup() voor elke output pin? Ik kan me eigenlijk niet voorstellen dat het wat anders is. Anders had je allang rook uit de chip gehad...



Hoi Nico hieronder de code :)

cpp code
int ledPinRed = 6;
int ledPinGreen = 9;

#include <Ethernet.h> // Used for Ethernet
#include <OneWire.h> // Used for temperature sensor(s)

// ************************************************************************
// define debug als je deze aanzet dan kun je de serial monitor gebruiken
#define DEBUG
// ************************************************************************

// **** ETHERNET SETTING ****
// Arduino Uno pins: 10 = CS, 11 = MOSI, 12 = MISO, 13 = SCK
// Ethernet MAC address - must be unique on your network - MAC Reads T4A001 in hex (unique in your network)
byte mac[] = { 0x00, 0xAF, 0xBB, 0xCC, 0xDE, 0x02 };
// For the rest we use DHCP (IP address and such)

EthernetClient client;
char server[] = "192.168.1.114"; // IP Adres (or name) of server to dump data to
unsigned long PreviousMillis = 0;// For when millis goes past app 49 days.
// hieronder kun je de tijd aanpassen dat hij moet loggen
unsigned long interval = 10000; // Wait between dumps (10000 = 10 seconds)
//unsigned long interval = 300000; // Wait between dumps (1 min)
unsigned long intervalTime; // Global var tracking Interval Time

// **** TEMPERATURE SETTINGS ****
// Sensor(s) data pin is connected to Arduino pin 2 in non-parasite mode!
OneWire ds(2);

void setup() {

digitalWrite(ledPinRed, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(ledPinGreen, HIGH); // turn the LED on (HIGH is the voltage level)


#ifdef DEBUG
Serial.begin(9600); // only use serial when debugging
#endif

Ethernet.begin(mac);

intervalTime = millis(); // Set initial target trigger time (right NOW!)

#ifdef DEBUG
Serial.println("Tweaking4All.com - Temperature Drone - v2.3");
Serial.println("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n");
Serial.print("IP Address : ");
Serial.println(Ethernet.localIP());
Serial.print("Subnet Mask : ");
Serial.println(Ethernet.subnetMask());
Serial.print("Default Gateway IP: ");
Serial.println(Ethernet.gatewayIP());
Serial.print("DNS Server IP : ");
Serial.println(Ethernet.dnsServerIP());
#endif
}

void loop()


{


digitalWrite(ledPinGreen, HIGH); // turn the LED on (HIGH is the voltage level)

unsigned long CurrentMillis = millis();

if ( CurrentMillis < PreviousMillis ) // millis reset to zero?
{
intervalTime = CurrentMillis+interval;
}

if ( CurrentMillis > intervalTime ) // Did we reach the target time yet?
{
intervalTime = CurrentMillis + interval;

if (!client.connect(server, 8080)) {
#ifdef DEBUG
Serial.println("-> Connection failure detected: Resetting ENC!"); // only use serial when debugging
#endif
Ethernet.begin(mac);
} else {
client.stop();
}

// if you get a connection, report back via serial:
if (client.connect(server, 8080))
{
#ifdef DEBUG
Serial.println("-> Connected"); // only use serial when debugging
#endif





// Make a HTTP request:
client.print("GET /arduinotemp_add_data/add_data.php?");



TemperaturesToGetVariables(); // send serial and temperature readings


client.println( " HTTP/1.1");
client.println( "Host: 192.168.1.114" );
client.print(" Host: ");
client.println(server);
client.println( "Connection: close" );
client.println();
client.println();
client.stop();
}
else
{
// you didn't get a connection to the server:
#ifdef DEBUG
Serial.println("--> connection failed !!"); // only use serial when debugging
#endif

//Enc28J60.init(mac);
}
}
else
{
Ethernet.maintain();
}
}

void TemperaturesToGetVariables(void)
{
byte counter;
byte present = 0;
byte sensor_type;
byte data[12];
byte addr[8];
float celsius;
byte sensorcounter;

ds.reset_search();
sensorcounter = 1; // we start counting with sensor number 1

while ( ds.search(addr) )
{
if (sensorcounter>1) client.print("&"); // add ampersand if not first sensor

client.print("serial"); // print: sensorx=
client.print(sensorcounter);
client.print("=");

#ifdef DEBUG
// Print Serial number
Serial.print(" Sensor : ");
Serial.println(sensorcounter);
Serial.print(" Serial : ");
#endif

for( counter = 0; counter < 8; counter++)
{
if (addr[counter]<10) client.print("0");
client.print(String(addr[counter], HEX));
if (counter<7) client.print("%20");

#ifdef DEBUG
if (addr[counter]<10) Serial.print("0");
Serial.print(String(addr[counter], HEX));
if (counter<7) Serial.print(" ");
#endif
}

#ifdef DEBUG
Serial.println(); // only use serial when debugging
#endif

client.print("&temperature"); // print: &temperaturex=
client.print(sensorcounter);
client.print("=");

// Check CRC
if (OneWire::crc8(addr, 7) != addr[7]) // print ERROR if CRC error
{
client.println("ERROR");
}
else // CRC is OK
{
// Removed sensor type detection and assumed DS18B20 sensor
ds.reset();
ds.select(addr);
ds.write(0x44); // start conversion, with regular (non-parasite!) power

delay(750); // maybe 750ms is enough, maybe not

present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad

// Get Raw Temp Data
for ( counter = 0; counter < 9; counter++)
{ // we need 9 bytes
data[counter] = ds.read();
}

// Convert the data to actual temperature
int16_t raw = (data[1] << 8) | data[0];

// at lower res, the low bits are undefined, so let's zero them
byte cfg = (data[4] & 0x60);

//// default is 12 bit resolution, 750 ms conversion time
if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms
else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms


celsius = (float)raw / 16.0;
client.print(celsius);

#ifdef DEBUG
Serial.print(" Temperature: ");
Serial.print(celsius);
Serial.println(" C");
#endif
}

sensorcounter++;

digitalWrite(ledPinGreen, LOW); // turn the LED on (HIGH is the voltage level)
for (int j=1; j<ledPinGreen; j=j+1) {

digitalWrite(ledPinGreen, HIGH); // turn the LED on (HIGH is the voltage level)
delay(500); // wait for a second
digitalWrite(ledPinGreen, LOW); // turn the LED off by making the voltage LOW
delay(500);

}





}
return;








}

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Zwak branden van leds.

Berichtdoor Koepel » 27 Dec 2016, 18:49

En hoe vaak staat "pinMode" in je sketch ?

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

Re: Zwak branden van leds.

Berichtdoor nicoverduin » 27 Dec 2016, 19:07

En daar hebben ze nu al die tutorials voor gemaakt (die niet gevolgd worden).... en de enorme reference (die nooit gelezen wordt).... en de hulp van de ervarenen (die op enig moment afhaken wegens gebrek aan inzet......)

Zucht...... https://www.arduino.cc/en/Reference/pinMode
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 12
Geregistreerd: 27 Dec 2016, 08:36

Re: Zwak branden van leds.

Berichtdoor mamekedi » 27 Dec 2016, 19:51

al gevonden foutje van mijn kant
ik ben vergeten output te plaatsen.

pinMode(ledPinRed, OUTPUT);
pinMode(ledPinGreen, OUTPUT);


Sorry Mannen toch bedankt voor jullie hulp

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Zwak branden van leds.

Berichtdoor shooter » 28 Dec 2016, 21:39

en je zult iets aan de delays moeten doen want die stoppen de zaak gewoon lees les 2 blink without delay
paul deelen
shooter@home.nl

Volgende

Terug naar Arduino hardware

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 4 gasten