Recent Posts

Pages: [1] 2 3 ... 10
1
Project Guidance / Re: Arduino project wheel sens...
Last post by wvmarle - Today at 07:44 am
The first link is broken, I think you mean https://www.robotshop.com/ca/en/solarbotics-rw2-large-rubber-wheels.html?

The stepper is rated 1A, 2.7V. You need an appropriate power supply for this. That's a rather uncommon voltage so likely you'll have to build your own. It needs an external controller that can work at 2.7V and provide 1A to the motor.

Your Arduino runs on 5V (maybe 3.3V). That's a separate power supply. You may need a level shifter to bring down the Arduino voltage to the 2.7V the stepper controller has to operate on.

Now what's still missing is info on those flex sensors.
2
Displays / Re: 7" LCD CPLD problem.
Last post by ZinggJM - Today at 07:40 am
@EFI_Muz

Thank you for the information.
I still would like to get a link to the display you bought, but I understand it might no longer be available.
A photo of the backside of your display might also have helped.

You report the marks on the PCB, and no marks of any chips on the PCB, so the controller may be hidden on the display panel or on the flexible connection part.

As you get output on your display, you seem to have selected the correct controller in UTFT, and I can look there and google the marks on your PCB to find out more.

I do not know if the clock speed of the Due can be easily reduced, but it may be easy to increase the length of the write pulse to the display in UTFT. I will take a look, and report later.

@david_prentice

David,

if you happen to look into this topic, you could help with your broader knowledge, now that some information is available.

Jean-Marc
3
Hi horace

I got no action from your code so I tweaked it a bit.  I hope this is what you had in mind
Code: [Select]

// constants
const int buttonOnePin = 2;
const int buttonTwoPin = 3;


void setup()
{
 Serial.begin(9600);
 Serial.println("     buttons using polled IO");
 Serial.println();
 // initialize pins
 pinMode(buttonOnePin, INPUT);
 pinMode(buttonTwoPin, INPUT);
}  //  end setup()


   // check button is held down for longer than 2 seconds
void loop()
{
 static unsigned long int button1timer = 0;
 // if button pressed note time
 if (button1timer == 0 && digitalRead(buttonOnePin) == HIGH)
 {
 button1timer = millis();
 Serial.println("button1timer was 0");
 }

 // if button has been pressed has 2 seconds elapsed
 if (button1timer > 0 && digitalRead(buttonOnePin) == HIGH)
 {
 if (millis() - button1timer>2000)
 {
 Serial.print("millis = ");
 Serial.println(millis());
 button1timer = 0;
 }
 }
 else button1timer = 0;

 delay(2000);
}  //  end loop()


I have gone back to the simplest of setups


but this is what I get without even touching a button
Code: [Select]

pening port
Port open
     buttons using polled IO

button1timer was 0
millis = 5999
button1timer was 0
button1timer was 0
millis = 24000
button1timer was 0
millis = 34000
button1timer was 0
millis = 44001
button1timer was 0
button1timer was 0
millis = 66002
button1timer was 0
button1timer was 0
millis = 76003
button1timer was 0
button1timer was 0
millis = 88003
button1timer was 0
button1timer was 0
millis = 108004
button1timer was 0
millis = 114004
button1timer was 0
button1timer was 0
millis = 126006


I have checked both switched with a DMM and bot are COLD when not pressed and HOT when pressed.

4
Not sure I understand, are you saying that the readings from the ADC channels are as expected but the reference voltage does not show up on AREF?

In theory, the ADC uses the voltage on AREF when it is doing a conversion but perhaps if something is damaged then the (TQFP package) pin may not be connected to the chip. If you have a DMM with a diode test then that can be used to see if the pin is connected to the chip. There are two ESD diodes that connect to the power and ground testing for one of those diodes will tell if the pin is connecting to the chip inside the package.
5
Project Guidance / Re: Option for detecting an av...
Last post by MorganS - Today at 07:37 am
Frequency bands are allocated for specific purposes. Some bands such as the aviation bands require a license to transmit on that band. So small, cheap transmitters are simply not available. Some bands don't require a license so thousands of people can use them. Those are the bands we usually use for Arduino projects because the transmitters and receivers only cost a buck or less.

The cheap transmitters and receivers are prohibited by law from being easily re-tuned into another band.

Honestly, the handheld radio is the easiest and cheapest way to get a tuneable receiver on the aviation band. With anything else you would be working hard to tune in a specific frequency without picking up any other nearby frequency.
6
Programming Questions / Re: NTP question
Last post by horace - Today at 07:36 am
I used the example from
https://www.arduino.cc/en/Tutorial/UdpNtpClient

which  uses Ethernet to connect to the NTP server
a run gives
Code: [Select]
Seconds since Jan 1 1900 = 3725591676
Unix time = 1516602876
The UTC time is 6:34:36
Seconds since Jan 1 1900 = 3725591687
Unix time = 1516602887
The UTC time is 6:34:47
Seconds since Jan 1 1900 = 3725591698
Unix time = 1516602898
The UTC time is 6:34:58
Seconds since Jan 1 1900 = 3725591710
7
It is invisible to you but the loop() function works like this:

Code: [Select]

int main()
{
    setup()

    while (true)
      loop();
}


So there is no real value in having another while loop inside your loop() function.


I would attach your touch switch to one of the interrupt pins e.g. pin 2
Something along the following lines should work
You need to disable interrupts until you have fully serviced the interrupt in loop.
Otherwise your interrupt will be continually interrupted by new calls to the interrupt....if that makes sense.

Code: [Select]

bool bButtonPressed = false;
uint8_t nButtonPin = 2, nLEDPin = 10;
uint16_t nOnTime = 0, nOffTime = 0;

void touchSwitchISR()
{
    noInterrupts();
    bButtonPressed = true;
}

void setup()
{
  pinMode(nLEDPin, OUTPUT);
  pinMode(nButtonPin, INPUT);
  attachInterrupt(digitalPinToInterrupt(nButtonPin ), touchSwitchISR, RISING);
}

void loop()
{
    if (bButtonPressed))
    {
         if (nOnTime == 0)
         {
             nOnTime = millis() + 10/*seconds*/ * 1000 /*milliseconds per second*/
             digitalWrite(nLEDPin, HIGH);
         }
         else
         {
             if (millis() >= nOnTime)
             {
                  digitalWrite(nLEDPin, LOW);
                  nOnTime = 0;
                  bButtonPressed = false;
                  interrupts();
             }
         }
    }
}
8
Hi all!

@dev
Thanks for making another library which doesn't need a pullup-resistor. Unfortunately the compiler gives an error
   "SRPIO2 does not name a type"
when compiling the line
   SRPIO2<LSBFIRST, DATA, CLOCK> display;
(??)

@robtillaart
That is very kind of you to optimize and test my subroutines. I am going to use your second solution which is fast and short. Unfortunately my program slows down when using menus. Due to a hint of /dev I could speed it up when getting rid of the DEBOUNCE-delay in the getkey-routine. And I think I have to review/rebuild the menu-routines (functions, physical constants) too.

Regards
deetee
9
"SCB->CPUID" is the same of (*SCB).CPUID right?
The "CPUID attribute" on the struct that SCB points
Code: [Select]
Serial.println((*SCB).CPUID, BIN);
10
Deutsch / Re: Einige Fragen: RS-485, Spa...
Last post by irieger - Today at 07:34 am
So, ich habe mir nun zum Testen ein paar MAX485 und Recom spannungswandler besorgt. So fürs Erste sieht es ganz gut aus, nur mit RS485 habe ich noch so meine Probleme bei bidirektionaler Kommunikation. Zur Übersicht habe ich einem neuen Thread im allgemeinen Forum zum Arduino-Networking gepostet https://forum.arduino.cc/index.php?topic=524090.0.

Hier nochmal kurz die Nachfrage: Wie sieht es bei Frage 3 aus dem Startpost aus? (Steckersystem für auf die Platinen) Hat da jemand einen guten Typ?


Grüße,
Ingmar
Pages: [1] 2 3 ... 10