Skip to main content
12 votes
Accepted

delay(time); vs if(millis()-previous>time); and drift

There's one important thing that you need to remember when working with time on an Arudino of any form: Every operation takes time. Your foo() function will take an amount of time. What that time is,...
Majenko's user avatar
  • 106k
9 votes
Accepted

Why is this looping?

This line: if (legThreeBrightness = 255){ assigns the value 255 to legThreeBrightness. That is non-zero so it enters the block and runs the fade now that the variable has been set to 255. If you ...
Delta_G's user avatar
  • 3,390
7 votes
Accepted

NodeMCU and expected ';' before wrong ' " '

In C you can not use quotation marks inside quotation marks (thus nested). Replace message2 += " <meta name="viewport" content="width=device-width, initial-scale=1">"; to message2 += " <...
Michel Keijzers's user avatar
7 votes

Multiple Wire.write() not working for Arduino Nano I2C

Important information: Wire.write() does NOT send anything over the I2C lines. It just puts the data into the libraries internal buffer. The actual transmission is then done by Wire.endTransmission(). ...
chrisl's user avatar
  • 16.5k
6 votes
Accepted

Why are the Do While loops not stopping?

change >= and <= to > and < respectively. You want it to stop at 0, but your do-while will do another round, since 0>=0 is true. So your code only stops at -1 and 256. When ...
Gerben's user avatar
  • 11.3k
6 votes
Accepted

Measure Vcc on ATtiny13a?

The code you linked to measures the 1.1 V internal reference using Vcc as a reference. The ATtiny13A cannot do that. It does have a 1.1 V internal reference, but it can only use it as a reference for ...
Edgar Bonet's user avatar
  • 44.3k
6 votes

How to move a servo quickly and without delay function

The quickest way possible from LightON to LightOFF is simply servo1.write(lightOFF); without loops or delays, in one go; no need to do it degree by degree. For example: int lightON = 180; int lightOFF ...
ocrdu's user avatar
  • 1,795
6 votes

How do I make another action repeat inside a loop?

By using delay() it blocks the rest of the code. The programme needs to keep track of two buttons and update the lightshow at appropriate times, therefore a non-blocking style of coding is needed ...
tim's user avatar
  • 699
5 votes
Accepted

How to correctly use functions that return pointers to multiple typedef'ed types in Arduino IDE?

The Arduino IDE, rather annoyingly, tries to "help" you by generating function prototypes for functions, something it sometimes fails to do. You can make your code compile by adding one yourself: ...
Nick Gammon's user avatar
  • 38.7k
5 votes

Why are the PWM variables in this RC code snippet handled this way? What are the magic numbers?

There is not enough context to be certain, but given the variable names I can assume that this is code from a sketch that receives information from an RC controller and is intended to control parts of ...
Majenko's user avatar
  • 106k
5 votes
Accepted

Unwanted ghosting with charlieplexed LEDs

Charlieplexing code doesn't reset the state of unused pin and if the port value is HIGH + mode INPUT, it means the pull-up is enabled. Solution is reset all pins to LOW before code starts changing ...
KIIV's user avatar
  • 4,777
4 votes

Middle school Student stuck and needs help

You can't add a string literal and a number together. Instead you either have to convert one or both into a format that can be joined, or just treat them as separate entities. The simplest way is: ...
Majenko's user avatar
  • 106k
4 votes
Accepted

Code is not working (Matrix keypad)

Cited comment: Check pin modes. Should be INPUT_PULLUP and OUTPUT. Also, consider debouncing. – Mikael Patel Please, try: const char keymap[4][4]={ {'1','2','3','A'}, {'4','5','6','B'}, {'...
AltAir's user avatar
  • 542
4 votes

Variable declaration inside main loop

Michael's answer was good, as usual. Let me give you some more background though: In C/C++ (And in most modern languages) variables have a "scope", or an area where they are defined. Global scope: ...
Duncan C's user avatar
  • 5,732
4 votes
Accepted

Make an LED Turn

You can try implementing a counter system in your Arduino program. For example, if this is your loop() function: void loop(){ int buttonState = digitalRead(1); // Give the variable buttonState the ...
Sony's user avatar
  • 110
3 votes

Help combining code

The first step with combining any programs together is to forget about combining programs together. Instead you need to do something completely different. Analyse the existing programs individually. ...
Majenko's user avatar
  • 106k
3 votes
Accepted

Student Code: map function not functioning

As Edgar Bonet pointed out, “chosenColor = 3 means 'let chosenColor take the value 3'”. That is, your potVal = analogRead(pot); chosenColor = map(potVal, 0, 1023, 1, 3); sequence may very well be ...
James Waldby - jwpat7's user avatar
3 votes

code optimazation 6x6 Matrix

You can use arrays to hold sets of row pin numbers or column pin numbers, which then allows use of for loops for pinMode() settings and for testing LEDs one after another, as shown in code below. ...
James Waldby - jwpat7's user avatar
3 votes
Accepted

Confusion on array definition at Arduino website

1-) Isn't int mySensVals[6] = {2, 4, -8, 3, 2}; wrong? I count 5 elements. No, not wrong at all. There are 6 elements (as the definition says), and the first five are set to 2, 4, -8, 3 and 2. The ...
Majenko's user avatar
  • 106k
3 votes

IR Remote code not activating ON/OFF states

Assuming you wiring is correct, the only mistake I could see is that your variable named "getting" used in switch is inside the if, and it should be at least in the same level of switch. Also, your ...
Andrew Paes's user avatar
3 votes
Accepted

Why can I measure two pins simultaneously?

You can test it easily by calling the function twice directly after each other. If the first time a true is returned and the second time a false, the state is internally reset. But probably because ...
Michel Keijzers's user avatar
3 votes

Why can I measure two pins simultaneously?

https://github.com/thomasfredericks/Bounce2/wiki I'm not familiar with the Bounce(2) library, but looking at the above site, it looks like "fell" is more of an "instant" thing, where it isn't ...
computercarguy's user avatar
3 votes
Accepted

Whats wrong with my code?

The errors are self-explanatory. You just have to read them carefully. ‘B54A3AC5’ was not declared in this scope The compiler doesn't know what "B54A3AC5" means. Nor do I, but I gess you may mean ...
Edgar Bonet's user avatar
  • 44.3k
3 votes
Accepted

Arduino classes, can't get property value

When you put the type there, you are creating new variables. SO in your constructor: MKSStepperMotors(int dirPin, int stepPin, int enablePin) { int _dirPin = dirPin; int _stepPin = ...
Delta_G's user avatar
  • 3,390
3 votes
Accepted

Having trouble with 74HC595 and Uno

Serial.read() is going to give you ASCII codes. So when you send 1 from the serial monitor the Arduino receives 49. Note that the ASCII code for a digit is the same as the digit plus 48, so that ...
Delta_G's user avatar
  • 3,390
3 votes

I keep getting stray '/302'.

The Stray /302 is saying that the compiler found some random unicode character that it didn't understand. You should put your code into some text editor that will allow you to see the unicode ...
Delta_G's user avatar
  • 3,390
3 votes

Getting error ets jan 8 2013,rst cause:4,boot mode(1,6) wdt reset

Found a possible solution. I was facing with the same problem. Apparently this is a hardware stack overflow watch dog preventing malfunction. This may not apply to every possible scenario but I ...
James Brown's user avatar
3 votes

Arduino Uno "if" statement is ignored in code and halts execution when using Serial.ReadString()

Let's look at what this code does when you send "On": if (command=="On") { //Turn the MOSFET on digitalWrite(5, HIGH); } This will evaluate true so pin 5 is set to HIGH. ...
per1234's user avatar
  • 4,248

Only top scored, non community-wiki answers of a minimum length are eligible