Show Posts
Pages: [1] 2 3 ... 5
1  Using Arduino / Sensors / Re: Detecting a tight range of frequencies on: March 07, 2014, 04:20:33 pm
Oh excuse me. I want to measure the vibration frequency of different metals under diferent operation: such as a motor, a car, etc.
And because it is relative to width and size, not only to material, I have to adjust the freq. to the desired application.

To give an example: Imagine that a motor bearing vibrates normally at 2,2 Khz and with certain dB. When the freq. goes up or the sound goes louder, something bad happens. I want to detect it without causing false positives.

I found this great calculator for the LM: http://www.vk2zay.net/calculators/lm567.php
But how do I adjust sensitivity/gain?
2  Using Arduino / Sensors / Re: Detecting a tight range of frequencies on: March 07, 2014, 04:02:06 pm
Thanks for your reply. I found out this document explaining the old band filters: www.ti.com/lit/an/sloa093/sloa093.pdf

However, does the LM567 solve all my problems? Is really that simple?
3  Using Arduino / Sensors / Detecting a tight range of frequencies on: March 07, 2014, 02:40:58 pm
Hi,

I have the idea of using the ATmega 328P to do a measuring detector for a very concrete frequencies.
For example: Measuring/detecting frequencies from 2Khz up to 2,5 Khz.

The circuit will be this:

Piezo detector -> Noise filtering -> Signal amplifier (gain regulated with a potentiometer) -> Low pass filter (frequency regulated with a potentiometer) -> High pass filter (frequency regulated with a potentiometer) -> Arduino

So the idea is to detect the frequency, filter the noise from capacitance, etc. Amplify and adequate the signal to be detected by the Arduino. Adjust manually with the pot. the band frequency to detect only the desired frequencies.

Then the program of the Arduino will measure the time of detection, so to throw out the false positives, and send and output to a PLC in case of a right detection.
From the software side is easy.
The piezo detector I think any one that works on the desired range will be ok.
Noise filtering: here I don't know what to do, is a normal RC, or RL filter? or there is any IC that could do the work? Or what you suggest?
Signal amplifier: Maybe a 74HC14? How do I regulate the gain with a pot?
Low and High pass filters, again no idea how to do it for the desired frequencies and also to be adjustable with a pot. Maybe there is also an IC that could make my life easier? (Electronics are not my strong point, sorry).

I will apreciate any help.
Thanks!

4  Using Arduino / Programming Questions / Creating new library for axis interpolation on: September 26, 2013, 04:57:27 pm
Hi,

I am creating a new library for axis interpolation (up to 3 axis and rotary movement too) which can be executed line by line in the compiled program, difference here is that I don't want to use/interpret G-code, think of it as an Accelstepper with interpolation.

Well, I started today, and the first step is straight line interpolation between two axis.
That's the first code I made, still unfinished and without direct port access. Now I'm more focused on creating a mathematic efficient and accurate movement:

Code:
Line(x,y,1000,-999,relative); //Declaration: type_of_movement(axis1,axis2,distance_axis1,distance_axis2,relative_or_absolute_movement);


a = 1000; //distance_axis1
b = -999; //distance_axis2
speed = 10000; //Depends on another class not showed here
//stop = max(a2,b2);

//Relative or absolute movement
if(relative){
a1 = actualPositionX; //Where we are
b1 = actualPositionY;
a2 = abs(a); //Where we want to be (in positive)
b2 = abs(b);
}
else{
a1 = actualPositionX;
b1 = actualPositionY;
a2 = abs(a);
b2 = abs(b);
}

//Set the direction of the movement
if(a > 0){
  digitalWrite(directionA,HIGH);
  incrementA = 1; //To increase or decrease position based on direction
}
else{
digitalWrite(directionA,LOW);
incrementA = -1;

}
if(b > 0){
  digitalWrite(directionB,HIGH);
  incrementB = 1;
}
else{
digitalWrite(directionB,LOW);
  incrementB = -1;

}

//Calculate and execute movement
}
if(a2>b2){
diference = a2/b2;
//stop = a2;
for(i=1,i<=diference,i++){
digitalWrite(x,HIGH);
delayMicroseconds(speed); //Where to put the speed limitation? Here can be useful because also keeps pin HIGH for a while
digitalWrite(x,LOW);
actualPositionX = actualPosition + incrementA;
a2--;
}
digitalWrite(y,HIGH);
delayMicroseconds(1); //It is not needed with digitalWrite, but it will with direct port address
digitalWrite(y,LOW);
b2--;
}

else if(a2<b2){
//TO IMPLEMENT WHEN a2>b2 is finished but inversed

}
else{
for(i=1,i<=a2,i++){
digitalWrite(x,HIGH);
digitalWrite(y,HIGH);
delayMicroseconds(speed);
digitalWrite(x,LOW);
digitalWrite(y,LOW);
a2--;
b2--;
}
//actualPositionX = actualPositionX + a2; //Will this increment the position to the right value when all the movements in al the if statements are finished???
//actualPositionY = actualPositionY + b2; //Will this increment the position to the right value when all the movements in al the if statements are finished???

}


Any suggestions?
5  Topics / Product Design / New automation project based on Arduino: workduino on: July 06, 2013, 07:35:43 am
Hi all,

Around 2-3 years ago I started to play with Arduino. Back then I saw an enormously potential for its easy of use.
So 18 months ago we started a project to apply the concept to the automation of CNC machines, complex automations and similar.

Now we have the first series, we called the project workduino.

It combines the easy of use of the Arduino concept (you can even use the IDE to program the cards) with dedicated libraries, I/O, etc.
To sum up you can use the Arduino IDE to program the HMI and core machine cards, our libraries provides the necessary conection with the other cards which use an Arduino compatible IC's, but this ones programmed with Atmel Studio. This way if anytime you want you can also program them with the IDE, but normally this is not necessary, as the libraries provides all the necessary functions and a plus in speed.

You can have a look at it at www.workduino.com, any suggestion will be greatly appreciated!
6  International / Español / Proyecto para automatización de maquinaria on: July 04, 2013, 12:47:47 pm
Hace algún tiempo comenté que estábamos trabajando en un proyecto basado parcialmente en Arduino. Nuestra intención era que como mínimo fuera programable desde el IDE de Arduino, para abrirlo al público que no se dedique a ello profesionalmente, y hacer la vida más fácil a los profesionales.

Bueno, pues ya tenemos gran parte del trabajo hecho!

Podeis ver su presentación en:
www.workduino.com

Actualmente estamos acabando las librerias y software necesario para interactuar con las tarjetas.
Como comenté en este foro que avisaría, pues avisados estais.

Si alguien tiene alguna pregunta o propuesta estaré encantado de contestar.
Saludos!
7  Using Arduino / Project Guidance / Re: Controling CNC machines - Quadrature encoder on: February 07, 2013, 11:35:12 am
Thanks PeterH for your answer.

I finally decided to do it "more standard": I will control the steps with the power amplifier/driver.
So the Controller CPU will only need to provide: pulse and direction.

We will design a pcb to control 5 motors with Accelstepper library. However not all motors will work interpolated (sync).
8  Using Arduino / Project Guidance / Controling CNC machines - Quadrature encoder on: February 07, 2013, 06:39:25 am
Hi all,

We've been designing a system based on Arduino to control CNC machines and more.
Actually I have the following doubt, and any suggestion will be greatly appreciated.

To control several CNC machines we have to give pulses to the servo motors and read the encoder position, however when we control several things at the same time, one CPU can't do all.
So we are designing a controller card.

The idea is the following:
1.- The master CPU gives the direction, acceleration, speed and pulses to the controller card (remember: several motors with at least 2 of them interpolated).
2.- The controller card gives the pulses to the servo-amplifier/motor.
3.- The quadrature encoder in the motor gives the pulses to an IC decoder.
4.- The IC decoder gives the pulses to the controller card which checks the position and acts according to that.
5.- When the position is reached the controller sends a signal to the master CPU, so the master CPU can send the next movement. If an error is produced the master CPU receives an error signal and all further movements are cancelled.

Doubts:
1.- How can I do it: One master CPU and several controller CPU's, or one master CPU and only one controller CPU. Doing only one controller CPU it's better because the communication process simplifies a lot: when you have to interpolate two axis all the process is done in only one CPU of the controller, so no delay with communications. But I'm afraid only one controller CPU will overhead, even that it is dedicated to this task and has a signal decoder.

I'm thinking to use ATMEGA328P IC's for the CPU, and for the decoder it can be a dedicated HCTL-2022 or an ATMEGA328P programmed only to decode the signal, however I don't know how fast can it be reading signals.

Any help will be greatly appreciated!
9  Using Arduino / Project Guidance / Re: Create my own Arduino Due board on: January 27, 2013, 11:13:29 am
Yes I know Arm only designs the Ic's.
I've checked now and I found the SAM3X8C on RS, it chages the final character, but suppose it will be very similar.
RS ref. Nr. 769-2527

And it is even cheaper than ATMEGA2560!

So now the important point it Nr.2: Programming the Arm with the IDE.
10  Using Arduino / Project Guidance / Create my own Arduino Due board on: January 27, 2013, 10:17:43 am
Hi all,

First of all, I suppose this was already posted on the forum, but I didn't find nothing useful by searching. Sorry if I create a duplicated post.

Long story short:
I've designed my own arduino board based on ATMEGA1284P, so far so good.
But I needed more power to use TFT color displays with 800x600 or more resolution. So I am thinking on the Due.
However the standard Arduino Due board it's not suitable for me, it is very basic, un-isolated and so on, so I need to create a robust hardware.

The questions I have are:
1.- Is the Arm IC available for purchasing? I didn't saw it at RS.
2.- I want to upload the program via Arduino IDE, however it is not important if I have to do it with a programmer rather than and USB (because I understand that with the new IC the bootloader will not be there, no problem! (I do the same with the 1284p: I program it through an AVRISP).


Thanks so much for your time! Any clue will be greatly appreciated.
11  International / Hardware / Re: Proyecto Arduino Mega 2560 como controladora industrial on: January 13, 2013, 05:44:38 pm
Muy buenas,

A finales de Enero tendremos hecho el primer prototipo de una de las 5 pcb en que consta el proyecto. Nuestra intención es hacer una pcb por mes, para acabar a finales de Mayo. Pero claro: dependera de lo que tardemos en afinar las versiones beta.

Como el coste se ha disparado, seguramente nos veais aparecer en kickstarter.com.
Por cierto, no se si lo comenté, al final el proyecto se llamará Workduino.com, cuando tenga tiempo ya haremos la web.

Ya daré más detalles cuando los tenga, y si veis que me olvido responder a este post, que estoy suscrito y recibo las contestaciones por mail.
12  Using Arduino / Networking, Protocols, and Devices / Re: Multiple masters communication on: December 18, 2012, 07:19:15 am
Thank you so much Headroom,

So I2C is a good way to start. I asked this because maybe is there a more appropriated protocol. The communication is between pcb's, so there is no cables in between.
13  Using Arduino / Networking, Protocols, and Devices / Multiple masters communication on: December 16, 2012, 06:00:27 pm
Hi all,

I am designing a system like a PLC where I need multiple ATmega to communicate each other, but I need more than one master as some of then needs to start the communication.

I see this is not possible over SPI. But I think for what I read that it is possible with I2C. The key thing is how can I accomplish this without having collisions or communication problems?

Thing to do is:
Case1: CPU1 wants to talk with CPU2, and starts the communication over I2C. NO PROBLEM.
Case2: CPU3 have some data to send to CPU1, tells over I2c that it has some data, and now CPU1 reads CPU3 over I2C.

It can't be done over I/O pins, not enough pins for the amount of CPU's! But it is all centralized over CPU1.
I know CPU1 can read over regular intervals all the other CPU's, but this is a lack of time, too slow and not optimal. As I am learning I want to find the right solution.


Thanks all!
14  Using Arduino / Displays / Re: 7" LCD or similar on: December 12, 2012, 08:50:22 am
Well, we have a lot of work to do yet, and the 7" is only a small part, so we didn't started yet.
The 7" screen is a part of a project we call "workduino" which is a scalable industrial controller half way PLC and CNC. We are designing now the first pcb board. I will open a post if someone is interested in it.

I had a look at the screen and UTFT, and the strange thing for me is that no power is supplied to the background, and all is 3.3v. Don't know if it is normal as I'm used to use alphanumeric and touch screen panels, which uses 5v or 24v.


I will try to find time and post it on projects section.
15  Using Arduino / Displays / Re: New UTFT Lib on: December 03, 2012, 03:04:01 am
Thanks, I'll try to find a 7".
Pages: [1] 2 3 ... 5