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,...
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 ...
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 += " <...
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().
...
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 ...
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 ...
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 ...
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 ...
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:
...
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 ...
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 ...
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:
...
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'},
{'...
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:
...
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 ...
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. ...
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 ...
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.
...
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 ...
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 ...
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 ...
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 ...
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 ...
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 = ...
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 ...
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 ...
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 ...
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.
...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
code-review × 251arduino-uno × 93
programming × 41
sensors × 21
arduino-nano × 19
esp8266 × 18
arduino-mega × 17
serial × 15
arduino-ide × 15
code-optimization × 15
led × 14
servo × 14
lcd × 11
motor × 9
button × 9
timers × 7
c++ × 6
nodemcu × 6
communication × 6
c × 6
i2c × 5
interrupt × 5
string × 5
sketch × 5
web-server × 5